Benötigen Sie eine lokale Variable, um das Fenster zu schließenIch versuche, mehrere Fenster zu generieren und die Schaltfläche zum Schließen jedes einzeln zu schließen.Es funktioniert jedoch nicht so, wie ich es erwartet hatte.Versuchen Sie, Code 2x auszuführen. Die Schaltfläche zum Schließen funktioniert für ein Fenster, nicht jedoch für das andere.
::a = "The quick fox jumped over the brown log";
::b = "Hello World I want to get off now";
names default to here(1);
nw = new window("Test",
text box(::a),
text box(::b),
button box("Close", nw << close window)
);


GrafikSkriptingBetreff: Zum Schließen des Fensters ist eine lokale Variable erforderlichHier ist, wie ich damit umgehen würde
::a = "The quick fox jumped over the brown log";
::b = "Hello World I want to get off now";
Names Default To Here( 1 );
Eval(
Substitute(
Expr(
__nw__ = New Window( "Test",
Text Box( ::a ),
Text Box( ::b ),
Button Box( "Close", __nw__ << close window )
)
),
Expr( __nw__ ),
Parse( "nw" || Char( Random Integer( 1, 999999999 ) ) )
)
);Betreff: Zum Schließen des Fensters ist eine lokale Variable erforderlichDanke Jim, das funktioniert.Aber zwei Fragen:
1. Warum arbeitet deine und nicht meine?
2. Es scheint, dass Sie __nw__ einer zufälligen Ganzzahl zuweisen, aber es ist bereits "Fensterhandle".Überschreibt das nicht den Wert des Fensterhandles?
Als Bonusfrage warum alle doppelten Unterstriche?Code funktioniert gut ohne sie.
Betreff: Zum Schließen des Fensters ist eine lokale Variable erforderlichIhr Code schlägt fehl, da beim zweiten Ausführen des Skripts die Variable "nw" so geändert wird, dass sie auf das neueste Fenster verweist.Grundsätzlich besteht das Problem darin, dass der Namespace "Hier" dem Skriptfenster zugeordnet ist und nicht jede Instanz über das Skriptfenster ausgeführt wird.Mein Code erstellt jedes Mal, wenn der Code ausgeführt wird, eine neue Variable.
Was die doppelten Unterstriche betrifft, so ist dies nur ein Standard, den ich verwende.Ich finde, dass es beim Lesen und Verstehen der Funktionsweise des Codes hilft.