Dialog-Editor Teil 6

Antworten
Volker
Beiträge: 38
Registriert: 08.07.2022, 09:25

Dialog-Editor Teil 6

Beitrag von Volker »

In diesem Teil beschäftigen wir uns genauer mit der Steuerung per Events und Bedingungen.
Ziel ist es, Anhand der getroffenen Auswahl in der CheckBoxListe einen Text anzupassen.

Bild

Auf der Seite Eigenschaften definieren wir als Erstes diese drei Eigenschaften oben.

Bild

Im Dialog-Editor legen wir, wie im Bild oben zu sehen, vier Einträge an. Text (hier direkt angegeben) ist die lokalisierte Darstellung im Setup-Dialog bzw. der Liste. Wert ist das, womit intern gearbeitet wird.

Bild

Als weiteres folgen drei weitere Textfelder, das Erste soll die aktuelle Auswahl ausgeben.

Bild

Das Zweite ist ein Test für die Weitergabe von Eigenschaftenwerten.

Bild

Das Dritte ist schließlich der zu ändernde Text.

Bild

Damit die Textfelder Events verarbeiten, muss dieses unter EventMapping angegeben werden.

Werfen wir nun einen Blick auf ControlEvent. Wenn die CheckBoxListe ein Event sendet (was bei der Ab/Auswahl geschieht), werden mehrere Aktionen ausgeführt.

-TextCtrl1 stellt durch EventMapping den Wert von VAR_CheckBoxList da (siehe oben).

-Der Wert von VAR_CheckBoxList wird in VAR_Feed kopiert und damit stellt TextCtrl2 den Wert von VAR_Feed da (EventMapping). Sie Syntax lautet [Nach] < [Von], sprich beide Eigenschaften müssen in eckigen Klammern angeben werden.

Die Reihenfolge dieser Einträge ist 0 und damit unbestimmt, die Abarbeitung spielt in diesem Fall auch keine Rolle.

Nun kommt als erstes der Eintrag mit der Reihenfolge=1, dieser löscht die Eigenschaft Var_Futter0, weil [0] einem (Null) beim Anlegen entspricht. Wozu kommt später.

Reihenfolge 2 und 3 können auch gern getauscht oder beide auf 2 oder andere identische Werte gesetzt werden, wichtig ist nur eine Ausführung nach 1.

2 hat folgende Bedingung: VAR_CheckBoxList~#=",Humans" AND (NOT VAR_CheckBoxList~#=",Dogs,Birds,Cats") und besagt, dieses soll ausgeführt werden, wenn Menschen aber keine Tiere ausgewählt wurde.

3 hat folgende Bedingung: VAR_CheckBoxList~#=",Dogs,Birds,Cats" AND (NOT VAR_CheckBoxList ~#= ",Humans") und besagt, dieses soll ausgeführt werden, wenn nur Tiere ausgewählt wurden, also keine Menschen.

Anmerkung: Das Komma am Anfang der Aufzählung ist wichtig, da damit das Trennzeichen (Komma) angegeben wird und ~ sorgt dafür, das nicht nach Groß/Kleinschreibung unterschieden wird.

Da es vorkommen kann, das weder 2 noch 3 zutrifft (z. B. Auswahl, Menschen + Katzen), muss der Text vorher neutralisiert werden (entfernen von Var_Futter0]).

Dieses kleine Beispiel macht nichts weiter, als dass es den Text in
  • Futter kaufen
  • Menschen-Futter kaufen
  • Tier-Futter kaufen
ändert und Werte von Eigenschaften in andere Eigenschaften kopiert.

Doch wozu?

Anwendungsgebiet: Eigenschaften kopiert.
Sie haben zwei oder mehrere identische Abfragen, einfachhalber sagen wir eine Passwortabfrage mit entsprechendem Text in einem speziellen Dialog. In diesem Dialog verwenden Sie z. B. die Eigenschaft Var_PSW. Im aufrufenden Dialog wird aber SQL_SERVER_PSW verwendet und im zweiten aufrufenden Dialog SQL_USER_PSW. Vor dem Aufruf transferieren Sie SQL_SERVER_PSW nach Var_PSW und nach der Rückkehr Var_PSW nach SQL_SERVER_PSW, gleiches für SQL_USER_PSW. Sie kapseln also die gesamte Logik im Passwort-Dialog und kopieren im Anschluss die Eingabe in Ihre Eigenschaft.

Als weiteres Beispiel sind CustomActions genannt, die Werte in bestimmten Eigenschaften erwarten, die nicht unbedingt in der UI verwendet werden.

Anwendungsgebiet: Gesteuerte zuweisen von Werten.
Hier gibt es eine Vielzahl von Anwendungen, dieses kann sein eine durch UI gesteuerte Installation „Möchten Sie die SDKs installieren?“ oder aber Sprungziele für Dialoge.

Wir können durch Events und Condition, zwar in begrenztem Umfang, ohne CustomActions Entscheidungswege festlegen und so die Dialog- oder Installationsabfolge zur Laufzeit ändern.
Mit freundlichen Grüßen,
AKApplications, Volker J.
Antworten