Startseite › Foren › Deutsches LiveCode-Forum › on openStack und Substack
Schlagwörter: openStack Substack
- Dieses Thema hat 3 Antworten und 3 Teilnehmer, und wurde zuletzt aktualisiert vor 7 Jahren, 12 Monaten von
hauke.
-
AutorBeiträge
-
-
März 15, 2017 um 13:30 Uhr #505
Anonym
Hallo,
Ihr könnt mir sicherlich mit meinem folgenden Problem weiterhelfen.
Beim Oeffnen meiner Desktop-App sollen alle Felder initialisiert werden, was ich wie folgt umgesetzt habe:
on openStack go to card "cardStart" put empty into field "fldFolder" on card "cardStart" on stack "Toolbox" put empty into field "fldInhalt" on card "cardStart" on stack "Toolbox" put empty into field "fldZeilen" on card "cardStart" on stack "Toolbox" hide field "lblKeineDuplikate" on card "cardStart" on stack "Toolbox" end openStack
Mit einem Substack wird ein Ergebnisfenster geöffnet. Dieses Ergebnisfenster wird über den folgenden Button geöffnet:
on mouseUp open stack "Original" put meinorg into field "fldOrg2" end mouseUp
Nun zu meinem Problem:
Beim Oeffnen des Substacks wird wieder der Code im Hauptstack ausgeführt und alle Felder im Hauptstack werden initialisiert. Die Initialisierung soll aber nur beim Oeffnen der App durchgeführt werden. D.h. ich suche nach einer Lösung, dass die Felder nur beim Oeffnen der App initialisiert werden, aber nicht beim Oeffnen des Substacks.
Ich wuerde mich freuen, wenn Ihr mich unterstützen könnt.
Andi
-
März 15, 2017 um 13:42 Uhr #507
Hallo Andi,
das ist ein häufig auftretendes Problem. Wenn Du ein Skript zum Ereignis „on openStack“ in den Hauptstack schreibst, dann soll dieser natürlich nur beim ersten Programmstart ausgeführt werden. Wenn Du aber einen Substack öffnest, wird dieses Ereignis „openStack“ wiederum im System ausgelöst. Findet LiveCode in dem gerade geöffneten Stack kein Skript, das dieses Ereignis behandelt, sucht es eine Ebene höher und findet das openStack-Skript im Hauptstack und führt es erneut aus.
Die Lösung besteht also darin, das folgende Skript dem Substack zuzuordnen:
on openStack -- nix tun bzw. bei Bedarf Substack initialisieren end openStack
Nun wird das openStack-Ereignis im Substack abgefangen und und ist damit vom Tisch. Fertig.
Beachte aber auch noch folgendes:
Referenzen auf Elemente wie zum Beispiel eine „card“ werden in LiveCode immer mit „of“ durchgeführt, nicht mit „on“.
Also zum Beispiel:
put empty into field "fldFolder" of card "cardStart" of stack "Toolbox"
Sonst gibt es Probleme.
Viel Erfolg weiterhin!
Hauke
-
März 27, 2017 um 21:52 Uhr #565
Eine andere Möglichkeit, die „pre/openstack“ Handler nur im Mainstack ausführen zu lassen, ist die, diese Handler im Skript der ersten Karte des Mainstacks zu packen!
Dadurch werden sie trotzdem von der Engine abgearbeitet, aber Substacks bleiben ruhig 🙂
Gruß
Klaus
-
März 28, 2017 um 08:48 Uhr #583
Vielen Dank, Klaus, für Deine hilfreiche Ergänzung!
-
-
AutorBeiträge
- Du musst angemeldet sein, um auf dieses Thema antworten zu können.