Ressourcen
Zur besseren Trennung von Programmierung und äußerer Gestaltung der
Programmoberfläche werden Resourcen eingesezt.
Resourcen werden in einer einfachen Skriptsprache erstellt und nehmen Ihnen eine
Menge Arbeit ab. Damit können Sie Dinge wie Menüs, Dialogfelder,
Symbole, Bitmaps und auch wiederum andere Resourcen-Daten erstellen. Mit
Resourcen legen Sie im Allgemeinen das Erscheinungsbild einer Anwendung
fest.
Keine Sorge, Sie müssen nicht erst noch eine Skriptsprache erlernen,
um Resourcen-Skripte zu erstellen, da die Syntax recht einfach ist. Am
besten, ich zeige es Ihnen anhand einer solchen Resourcen-Datei.
1 24 xptheme.xml
FB_PROGRAM_ICON ICON test.ico
Die erste Zeile läd ein Manifest in das Programm welches eine verbesserte Darstellung ermöglicht.
Die zweite Zeile läd ein Icon, welches als Programmicon, in der Titelzeile und im Tray verwendet werden kann.
Jede Zeile besteht aus Ressourcennummer, Ressourcentyp und Ressourcendaten.
Eine Hilfe zum GoRC (FB verwendet diesen Resource Compiler) können Sie
hier nachlesen (engl.)
Manifest zur Verwendung visueller Stile
Ab Windows XP können Benutzeroberflächen grafisch aufwendiger ausgeführt werden, indem für die Fenster
Visual Styles aktiviert werden.
1 24 xptheme.xml
Die Ressourcennummer kann normalerweise frei gewählt werden, nicht beim Manifest. Hier muss sie 1 sein.
Der Ressourcentyp muss im Allgemeinen 24 sein, man kann auch den Ressourcentyp RT_MANIFEST als 24
definieren.
Die Ressourcendaten sind hier ein externer Text in der Datei 'xptheme.xml'.
<?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.1"
processorArchitecture="X86"
name="CompanyName.ProductName.MyApplication"
type="win32"
/>
<description>Optional MyDescription for MyApplication</description>
<!-- Compatibility section for Program Compatibility Assistant (PCA) -->
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!-- Windows Vista -->
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
<!-- Windows 7 -->
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
<!-- Windows 8 -->
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
</application>
</compatibility>
<!-- Trustinfo section for User Account Control (UAC) -->
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges>
<!-- level = "asInvoker" -->
<!-- level = "highestAvailable" -->
<!-- level = "requireAdministrator" -->
<requestedExecutionLevel
level = "asInvoker"
uiAccess = "false"
/>
</requestedPrivileges>
</security>
</trustInfo>
<!-- Dependency section -->
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
Weitere Ressourcen
FB_PROGRAM_ICON ICON test.ico
20 BITMAP "Volta.bmp"
34 FONT "LCD.ttf"
50 RCDATA "Volta.png"
Das Schema ist bei den einzeiligen Ressourceinträgen gleich (Ressourcennummer, Ressourcentyp und Ressourcendaten).
Der Vorteil ist dabei daß die Daten nicht mehr als Zusatzdateien der EXE beigegeben werden,
sondern in der EXE eingebunden sind.