moai.CreateDialog(xml$[, parent$])
parent$
angeben.
moai.CreateDialog()
ist sehr wichtig, da Sie Dialoge nur dann
erstellen sollten, wenn Sie sie brauchen und sie aus dem Speicher
löschen, sobald Sie den Dialog beendet haben. Es wird nicht
empfohlen, alle Ihre Dialoge beim Start mit moai.CreateApp()
zu erstellen und sie ständig im Speicher zu behalten. Stattdessen
sollten Sie einen Dialog nur dann erstellen, wenn Sie ihn benötigen
und ihn dann löschen, sobald Sie ihn beendet haben. Der Grund
dafür ist, dass Fenster auf einigen von RapaGUI unterstützten
Betriebssystemen eine begrenzte Ressource ist. Zum Beispiel
gibt es unter Windows ein Limit von ungefähr 10.000 Fenstern
pro Prozess. Das klingt vielleicht ausreichend genug, aber bedenken
Sie, dass unter Windows jedes GUI-Widget für das Betriebssystem
ein "Fenster" ist. Z.B. jede Beschriftung, jede Schaltfläche, jeder
Rahmen, jedes Auswahlkästchen, jede Gruppe usw. ist ein Fenster
in Ihrer Anwendung (Application), so dass Sie darauf achten sollten, dass
Sie Ihre Dialoge nur mit moai.CreateDialog()
erstellen und anschließend
direkt wieder löschen.
In der Praxis ist es ratsam, für jeden Ihrer Dialoge eine eigene
XML-Datei zu erstellen und mit moai.CreateDialog()
diese XML-Datei
zur Laufzeit in einen Dialog zu konvertieren. Sobald der Benutzer
ihn schließt, lässt man ihn automatisch durch RapaGUI wieder
aus dem Speicher löschen.
Technisch gesehen handelt es sich bei diesem Befehl lediglich
um eine Komfortfunktion, die intern moai.CreateObject()
aufruft und dann das neu erstellte Objekt durch Aufruf von Application.AddWindow
dem Applications-Objekt hinzufügt. moai.CreateDialog()
kombiniert
diese beiden Schritte einfach in einem.
Siehe Dialog-Klasse für mehr Informationen über Dialoge.
moai.CreateDialog([[ <dialog id="dlg" title="Question"> <vgroup> <text>What is your name?</text> <textentry/> <hgroup> <button id="ok">OK</button> <button id="cancel">Cancel</button> </hgroup> </vgroup> </window> ]]) moai.DoMethod("dlg", "showmodal")Der obige Code erzeugt einen neuen Dialog und zeigt ihn an.