5.6 Kompilieren von Interface- und Binärdateien für Imports mit use
Während der Entwicklung einer IDM-Applikation und der Nutzung mit Quelltext-Dateien dienen die Interface-Dateien als Repräsentation der extern verfügbaren (exportierten) Objekte eines Moduls, also der Schnittstelle nach außen. Durch die Trennung von Schnittstellen-Definiton und Implementierung ist der IDM in der Lage, das Laden der Implementierung (also des Moduls) nur bei Bedarf durchzuführen.
Durch use
kann diese Schnittstellen-Definition auch direkt aus dem Modul, also der Implementierung erfolgen. Aus oben genannten Grund macht es aber dennoch Sinn Interface-Dateien zu nutzen.
Für die Auslieferung einer IDM-Anwendung an den Endkunden bedarf es einer Binärfassung der Dialoge und Module.
Grundsätzlich können Interface- und Binärdateien auf dem herkömmlichen Weg über die Aktionen -writeexport und -writebin erzeugt wegen. Solange diese Dateien mit der richtigen Dateiendung an der richtigen Stelle im Suchpfad stehen, hat die Anweisung use
damit kein Problem.
Für modularisierte Dialoge die use
verwenden gibt es viel einfachere Aktionen, um alle Interface- und Binärdateien in einem Schritt zu erzeugen.
Erneuert alle Interface- und Binärdateien für geänderte Module und Dialoge. |
|
Erzeugt alle Interface- und Binärdateien neu. |
|
Löscht alle Interface- und Binärdateien. |
Dazu muss der Dialog fehlerlos geladen werden können. Erzeugt werden Interface- und Binärdateien nur für den angegebenen Dialog und alle per use
geladenen Module. Für Module, die per import
angezogen werden, wird keine Interface- und Binärdatei erzeugt!
Die zu ladenden Modul- und Dialogdateien müssen als Quelltext vorliegen. Bei einem Ladefehler werden keine Dateien erzeugt.
Beispiel
!! file: Main.dlg
dialog MainDlg
use Models;
use Base.Fonts;
MWiMain WiMain {
.font Fonts.FnBig;
}
|
!! file: Models.mod
module ModModels
export window MWiMain {
on close {
exit();
}
}
|
!! file: Base/Fonts.mod
module ModFonts
export font FnBig "24.Arial";
|
Über folgendes Kommando kann man in einem Schritt alle Interface- und Binärdateien erstellen:
pidm -compile Main
Nun sollten die folgenden Dateien parallel zu den Quelltext-Dateien stehen:
Main.bin Models.bin Models.if Base/Fonts.bin Base/Fonts.if
Fügt man nun in der Datei Base/Fonts.mod noch die Zeile export font FnSmall… hinzu, so aktualisiert man einfach mit folgendem Kommando:
pidm -compile Main
Was zum erneuten Schreiben der folgenden Dateien führt:
Base/Fonts.bin Base/Fonts.if
Die anderen Interface- und Binärdateien werden nicht neu geschrieben, da das Dateidatum dieser Dateien neuer ist als das der entsprechenden Quelldatei.
Möchte man auf jeden Fall alle Interface- und Binärdateien neu erzeugen lassen, so geht dies über:
pidm -recompile Main
Möchte man alle Interface- und Binärdateien löschen, so geht dies über:
pidm -cleancompile Main
Um die Interface- und Binärdateien in ein anderes Verzeichnis hinein zu erzeugen, dienen die Optionen -ifdir <Verzeichnispfad> und -bindir <Verzeichnispfad>.