Grundlagen zu Dialog-Ressourcen


In diesem Tutorial geht es um die Dialoge aus den Programmressourcen. Bevor man immer neue Fenster erzeugt und aufruft, kann es hilfreicher sein diese vorgefertigten "Formulare" zu nutzen.

Es bleibt Ihnen überlassen, mit welchem Editor Sie Dialoge erstellen. Der Klassiker schlechthin ist wohl Borlands ResourceWorkshop, der (leider nicht sehr aktuell) bei Delphi 5 noch dabei ist. Ich persönlich bevorzuge den Visual Studio-Editor von Microsoft. Abhängig von der verwendeten Visual Studio-Version ist er recht aktuell und bietet daher auch Zugriff auf neuere Controls (etwa Tree-View oder List-View), die dem Borland-Editor unbekannt sind. Wenn Sie den VS-Editor ebenfalls benutzen, dann möchte ich Sie auf ein paar Dinge aufmerksam machen:

  1. Ein Phänomen, das mich am Anfang so manche Stunde gekostet hat, ist die Tatsache, dass die erzeugten Dialoge standardmäßig nicht angezeigt werden. Schuld daran ist der fehlende Haken vor der Option "Sichtbar" in den Eigenschaften des Dialogfeldes. Wenn Ihr Programm also läuft, Sie aber nichts sehen, dann dürfte diese fehlende Sichtbarkeit der Hauptgrund sein.
  2. Beim VS-Editor haben Sie die Möglichkeit, die Ressourcen als Skript (*.rc) oder direkt als kompilierte Ressourcendatei (*.res) zu speichern. Um das Skript nutzen zu können, müssen Sie es erst mit einem Ressourcen-Compiler kompilieren, z.B. dem "bcc32.exe" von Borland. Dieser Schritt entfällt bei der fertigen RES-Datei, dafür können Sie diese nicht mehr manuell nachbearbeiten, was beim Skript möglich ist, weil es sich im Prinzip nur um eine Textdatei mit bestimmter Syntax handelt.
  3. Der VS-Editor erzeugt neben dem Skript auch noch eine "resource.h". Es kann zu einer Fehlermeldung kommen, wenn Sie versuchen das RC-Skript mit dem Ressourcen-Compiler von Borland zu kompilieren. Das liegt aber nicht an Inkompatibilitäten sondern einfach nur daran, dass der Compiler auf bestimmte Definitionen nicht zugreifen kann.
    In diesem Fall sollten Sie in Ihre "autoexec.bat" den Namen der Visual Studio-Batchdatei eintragen, die die Umgebungsvariablen anpasst. Standardmäßig heißt diese Datei "VcVars32.bat" und befindet sich im BIN-Ordner von VisualC++. Nach dem nächsten Neustart erzeugt Borlands Ressourcen-Compiler ohne weitere Probleme Ihre RES-Datei.
  4. Die Abmessungen aller Elemente des VS-Editors entsprechen nicht dem Pixelmaß von Delphi. Darauf sollten Sie ganz besonders achten. Wenn Sie, wie von Delphi gewohnt, einem Element z.B. als Breite den Wert 300 zuordnen, dann sind das mehr als 300 Pixel.

Im folgenden Beispiel wollen wir diesen Dialog:



in unserem Programm anzeigen, der sich in einem Ressourcen-Skript ("dialog.rc") befindet.
Ich sagte ja schon, dass es sich dabei nur um eine Textdatei mit bestimmter Syntax handelt, und deshalb sieht unser Dialog im Skript so aus:

// Dialog
100 DIALOGEX 0, 0, 162, 95
STYLE DS_3DLOOK | DS_NOFAILCREATE | DS_CENTER | WS_MINIMIZEBOX |
    WS_MAXIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Arbeiten mit Dialog-Ressourcen"
FONT 8, "MS Sans Serif"
BEGIN
    CTEXT           "Hello",101,38,5,85,20,SS_CENTERIMAGE | SS_SUNKEN
    CTEXT           "World",102,38,35,85,20,SS_CENTERIMAGE | SS_SUNKEN
    PUSHBUTTON      "&Beschriften",103,5,70,70,20,0,WS_EX_CLIENTEDGE
    PUSHBUTTON      "&Schließen",104,85,70,70,20,0,WS_EX_CLIENTEDGE
END