...use Visual Styles from XP in the own application?

Author: Thomas Stutz

Category: Forms

{
  To benefit from the new look and feel (Visual Styles) for the Windows XP
  environment, you must include a Manifest in your application.
  (Either as resource or as file in the same directory where your application
  resides)

  The manifest is a XML document. It will allow Windows XP to decide which
  version of the comctl32.dll to use when binding.
  The XML document contains information about the application you are
  writing as well as information concerning the version of the comctl32.dll to use.

  The following instruction shows how to
   * create the manifest document
   * create the XP resource file
   * include the file in your application

  The steps 1-4 show how to create the files.
  You can also download the manifest and resource file from the
  Demo-download.

}

{
  Damit eine Anwendung das neue Look-and-Feel (Visual Styles) von Windows XP
  annimmt, muss eine Manifest Datei in der Applikation enthalten sein.
  (Entweder als Ressource oder im gleichen Verzeichnis, wo sich die Applikation
  befindet)

  Das Manifest ist ein XML Dokument.
  Wenn Windows dieses in einer EXE Datei vorfindet, wird automatisch die Version 6
  von comctl32.dll geladen und die Controls erscheinen im XP Design.

  Die Folgende Anleitung zeigt, wie man
  * das manifest Dokument erstellt
  * die Ressourcen Datei erstellt
  * die Ressource in die Anwendung einbindet.

  Das Manifest und die Ressourcen Datei können auch über das "Demo-Download" heruntergeladen
  werden. Dann können die Schritte 1-4 ausgelassen werden.
}


{1)
  Copy this sample manifest and paste it into notepad or any text editor.
  Kopiere das Beispiel Manifest und füge es in einen Texteditor ein (z.B Notepad}


<?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="CompanyName.ProductName.MyProgram"
    type="win32"
/>
<description>Your Application Description</description>
<dependency>
    <dependentAssembly>
        <assemblyIdentity
            type="win32"
            name="Microsoft.Windows.Common-Controls"
            version="6.0.0.0"
            processorArchitecture="X86"
            publicKeyToken="6595b64144ccf1df"
            language="*"
        />
    </dependentAssembly>
</dependency>
</assembly>

{2)
  To customize to fit your application, replace "name" from assemblyIdentity and the
  "description" string with your own data. Then save the file as WinXP.manifest

  Ändere im Manifest den "name" von assemblyIdentity und die
  "description" mit eigenen Angaben. Speichere das Manifest als WinXP.manifest}

{3)
  Create another file which contains instructions to include the
  WinXP.manifest (XML) document.
  The contents of the WinXP.rc looks like this:

  Erstelle eine weitere Datei, welche die Instruktionen zur Erstellung
  der Ressourcen Datei enthält.
  Der Inhalt von WinXP.rc schaut so aus:}


  
1 24 "WinXP.manifest"


{4)

  Now we need to use Delphi's resource compiler (brcc32.exe) to compile the WinXP.rc file.
  Doing so will result in a WinXP.res
  From the command line, type the following:

  Compilire nun mit Borland's Resource Compiler (brcc32.exe),
  die Datei WinXP.rc. Es wird dann eine WinXP.res Datei erstellt.
  Gibt im MS-DOS Prompt, im Verzeichnis wo sich WinXP.rc befindet, nun folgendes ein:}

  
brcc32 WinXP.rc


(*5)
  Now include the resource in your application.
  Include the following compiler directive:
  immediately after {$R *.DFM}:

  Nun muss noch eine Compiler Directive dem Sourcecode hinzugefügt werden.
  Der Eintrag sollte unmittelbar nach der Form Directive {$R *.DFM} folgen,
  so wie hier:*)

  {$R WinXP.res}


{6)
  Compile your application and run it!
  Compiliere die Anwendung und starte sie!}


{7)
  Test it if it runs correctly.
  Note that some controls don't adapt the new XP design such
  as TGroupBox, TSpeedButton and some others.
  If you use the TListView component with the view style of vsReport, have a look at this tip:
  http://www.swissdelphicenter.ch/de/showcode.php?id=1117

  Überprüf nun, ob die Anwendung korrekt läuft. Einige Controls nehmen das neue XP Design
  nicht an (TGroupBox, TSpeedButton und andere)
  Bei der ListView mit vsReport Style muss dies beachtet werden:
  http://www.swissdelphicenter.ch/de/showcode.php?id=1117
}

 

printed from
www.swissdelphicenter.ch
developers knowledge base