Lade...
 

Extern (1.Beispiel)

Modul dynamisch laden

Hier ist eine Beispielprojektkonfiguration beschrieben, die zeigt, wie über eine Extern-Angabe ein Modul bei Bedarf nachgeladen werden kann. Das Projekt muss mit folgenden Parametern aufgerufen werden: 

Aufruf
cx_osuo.exe project.cxp --extern_file project.ext

 

Quellcode

project.ext
Msg(DISPLAY_DIALOG) Extern(dialog, File(dialog.mod), triggeredBy(DISPLAY_DIALOG))

 

project.cxp
Module(project) [ INITIALIZE: OpenWindow(mainWindow) ] Window(mainWindow, 0, 0, 500, 100) { Button(dialogButton, 0, 0, 200, 10, T("Dialog öffnen", "Open dialog")) [ SELECT: T("Bitte bestätigen", "Please confirm") SendMsg(DISPLAY_DIALOG) ] }

 

dialog.mod
Module(dialog) [ INITIALIZE: T("Modul initialisiert", "Module initialized") Attention(,INFO) DISPLAY_DIALOG: DialogBox(QUESTION+YES+NO+CANCEL) ]

 

In diesem Beispielprojekt öffnet sich ein Fenster mit einem Button und erst beim Klick auf diesen Button wird das Modul dialog geladen, denn die Message DISPLAY_DIALOG wurde in triggeredBy() angegeben. Das Modul führt zuerst die INITIALIZE-Message aus und zeigt den Initialisierungsdialog. Sobald dieser weggeklickt wird, wird die eigentliche Message DISPLAY_DIALOG mit dem Text auf dem Stack ausgeführt und der gewünschte Dialog wird angezeigt.