http://www.borland.pl/cgi-bin/tip.exe/showtip?mode=1&id_tip=44


Wykorzystanie styli XP w Delphi
Krzysztof Świątkowski

Nowe dziecko Microsoftu - Windows XP - posiada bardzo ciekawy element, który nazywa się - kompozycje. 
Jest on istotny dlatego, że pozwala całkowicie zmienić wygląd systemu. Ponieważ dostosowanie się do 
niego może starszym programom sprawiać problem Microsoft wymaga aby program wymusił na systemie 
załadowanie nowych bibliotek. 

Programy generowane przez Delphi i C++ Builder'a nie są domyślnie przystosowane do obsługi 
kompozycji Windows XP, ale można je tego szybko nauczyć. Więcej, można nawet nauczyć tego 
programy, których kodu źródłowego nie mamy. 

Podstawą do wykorzystania przez program kompozycji jest stworzenie manifestu dostępnego razem z aplikacją. 
W najlepszym przypadku manifest ten trafia do zasobów wkompilowanych w program. Ale można go też zdefiniować 
zewnętrznie w stosunku do programu. Otóż wystarczy stworzyć w katalogu, w którym znajduje się plik exe, plik manifestu.
Co to jest manifest? Manifest jest plikiem XML, który określa pewne parametry współpracy programu z systemem. 
Szczegółowy opis znajduje się w MSDN. Dla naszych potrzeb wystarczy plik manifestu w najprostszej postacji.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity    
version="1.0.0.0"    
processorArchitecture="X86"    
name="ManiTest"    
type="win32"/>

<description>
Universal picture viewer
</description>
<dependency>    
<dependentAssembly>        

<assemblyIdentity            
type="win32"            
name="Microsoft.Windows.Common-Controls"            
version="6.0.0.0"            
processorArchitecture="X86"            
publicKeyToken="6595b64144ccf1df"            
language="*"        />    

</dependentAssembly>
</dependency>
</assembly>


Jeszcze tylko jeden drobiazg. Plik ten musi się nazywać:

tak jak plik uruchamiający aplikację + rozszerzenie .manifest. 
Dla naszego przykładowego programu ManiTest.exe będzie to plik:
	ManiTest.exe.manifest

Program ManiTest należy sobie zrobić samemu, tworząc nową aplikację i kładąc na nią różne kontrolki.
Wskazane są eksperymenty z różnymi kontrolkami ponieważ, póki co tylko część z nich potrafi się 
grzecznie zachować w Windows XP. Typowym przykładem kontrolki, która się wyłamuje jest Grid, który 
niestety nie wygląda "kompozycyjnie". Ale zawsze można takie kontrolki zastąpić innymi lub napisać 
własne, które będą się dobrze rysowały.

Przykładowy program razem z manifestem (tylko kod źródłowy) znajduje się tutaj

