Bezeichnung
moai.CreateDialog -- erstellt ein Dialogobjekt aus einer XML-Quelle
Übersicht
moai.CreateDialog(xml$[, parent$])
Beschreibung
Mit diesem Befehl können Sie dynamisch ein Dialogobjekt aus einer XML-Quelle erzeugen. Das neu erstellte Dialogobjekt wird ebenfalls automatisch an Ihr Programm angehängt, so dass es sofort einsatzbereit ist. Sie sollten auch ein übergeordnetes Fenster für Ihren Dialog mit dem optionalen Argument 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.

Eingaben
xml$
eine Zeichenkette, welche eine XML-MOAI-Dialogbeschreibung enthält
parent$
optional: übergeordnetes Fenster für das Dialogobjekt; Details siehe oben
Beispiel
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.

Navigation zeigen