GUI-API: Unterschied zwischen den Versionen

Aus AquaSoft Wiki
Zur Navigation springenZur Suche springen
Zeile 31: Zeile 31:
 
* ''Key'': Eindeutige Kennung der Komponente, seine ID
 
* ''Key'': Eindeutige Kennung der Komponente, seine ID
 
* ''Type'': Art der Komponente. Kann folgende Werte annehmen:
 
* ''Type'': Art der Komponente. Kann folgende Werte annehmen:
** ''[[Title]]'': Title der Vorlage oder des Effekts
+
** ''[[Dokumentation der Komponente Title|Title]]'': Title der Vorlage oder des Effekts
** ''[[Edit]]'': Eingabefeld
+
** ''[[Dokumentation der Komponente Edit|Edit]]'': Eingabefeld
** ''[[ListBox]]'': Listenelement, enthält Strings
+
** ''[[Dokumentation der Komponente ListBox|ListBox]]'': Listenelement, enthält Strings
** ''[[ComboBox]]'': Aufklappbarer Auswahldialog, enthält Strings
+
** ''[[Dokumentation der Komponente ComboBox|ComboBox]]'': Aufklappbarer Auswahldialog, enthält Strings
** ''[[CheckBox]]'': Kästchen zur binären Auswahl
+
** ''[[Dokumentation der Komponente CheckBox|CheckBox]]'': Kästchen zur binären Auswahl
** ''[[ImageComboBox]]'': Aufklappbarer Auswahldialog, enthält Bilder
+
** ''[[Dokumentation der Komponente ImageComboBox|ImageComboBox]]'': Aufklappbarer Auswahldialog, enthält Bilder
** ''[[SpinEdit]]'': Eingabefeld für Ganzzahlen, liefert Integer-Werte
+
** ''[[Dokumentation der Komponente SpinEdit|SpinEdit]]'': Eingabefeld für Ganzzahlen, liefert Integer-Werte
** ''[[Slider]]'': auch unter '''TrackBar''' bekannt, Schieberegler, liefert Integer-Werte
+
** ''[[Dokumentation der Komponente Slider|Slider]]'': auch unter '''TrackBar''' bekannt, Schieberegler, liefert Integer-Werte
 
* ''Caption'': Beschriftung der Komponente, kann leer sein.
 
* ''Caption'': Beschriftung der Komponente, kann leer sein.
 
Zusätzlich gibt es das optionale '''Options'''-Objekt, welches bei Bedarf bestimmte Zusatzinformationen enthalten kann - je nach Type.
 
Zusätzlich gibt es das optionale '''Options'''-Objekt, welches bei Bedarf bestimmte Zusatzinformationen enthalten kann - je nach Type.

Version vom 13. August 2012, 13:06 Uhr

Es ist manchmal notwendig, dass für Vorlagen und Effekte Einstellungen und Eingaben vom Benutzer gebraucht werden. Daher bietet die Scripting-API die Möglichkeit, einfache [Benutzeroberflächen] (GUI) zu gestalten.

Einfügen der GUI

Die Gestaltung geschieht innerhalb der vordefinierten Funktion GetGUI, die irgendwo im betreffenden Skript eingefügt sein muss: function GetGUI(SlideShowObject: ISlideShowObject): string; begin

 Result := ;

end;

}

Diese Funktion hält einen Parameter SlideShowObject. Dieses ist eine Referenz auf das Objekt, welches das Skript ausführt. Das ist in der Regel das Effekt- bzw. das BlackBox-Objekt selbst.

Die Definition der GUI erfolgt mittels [[1]]-Syntax. Die Funktion liefert also einen JSON-String zurück.

Struktur des JSON-Strings

Das JSON-Objekt ist ein Array aus Komponenten-Objekten:

[

 {
   # Komponente 1
 },
 {
   # Komponente 2
 }

]

Jede Komponente benötigt das Key-Element, das Caption-Element und das Type-Element. Alle diese Elemente sind vom Datentyp String.

  • Key: Eindeutige Kennung der Komponente, seine ID
  • Type: Art der Komponente. Kann folgende Werte annehmen:
    • Title: Title der Vorlage oder des Effekts
    • Edit: Eingabefeld
    • ListBox: Listenelement, enthält Strings
    • ComboBox: Aufklappbarer Auswahldialog, enthält Strings
    • CheckBox: Kästchen zur binären Auswahl
    • ImageComboBox: Aufklappbarer Auswahldialog, enthält Bilder
    • SpinEdit: Eingabefeld für Ganzzahlen, liefert Integer-Werte
    • Slider: auch unter TrackBar bekannt, Schieberegler, liefert Integer-Werte
  • Caption: Beschriftung der Komponente, kann leer sein.

Zusätzlich gibt es das optionale Options-Objekt, welches bei Bedarf bestimmte Zusatzinformationen enthalten kann - je nach Type.

  1. Beispiel für ein Edit-Feld und ein beschränktes Spin-Edit.

[

 {
   "Key" : "Edit1",
   "Type" : "Edit",
   "Caption" : "Dies ist eine Edit-Feld"
 },
 {
   "Key" : "Spin1",
   "Type" : "SpinEdit",
   "Caption" : "Dies ist ein SpinEdit-Feld",
   "Options" :
     {
       "Min" : 1,
       "Max" : 10
     }
 }

]