Hallo,
Ich habe eine Variable namens lf (lf = ListF << Get Items, wobei ListF eine Liste von Elementen ist). Ich definiere ListF innerhalb einer Funktion, die ein Schaltflächenfeld enthält. In der Funktion für dieses Schaltflächenfeld, die nach der Funktion definiert wird, in der ListF definiert ist, setze ich lf = ListF << GetItems.Ich kann innerhalb der Funktionen auf die lf-Variable zugreifen, aber nach den Funktionen, wenn ich print(lf); Es gibt mir diesen Namen ungelösten Fehler. Könnten Sie mir eine Idee geben, warum?
Funktion, in der ListF definiert ist:
selectFileButton = Function({y},
win1 = New Window( "Select Files",
Lineup Box( N Col( 2 ), Spacing( 3 ),
Button Box( "File To Tag", ListF << Append( ListData << GetSelected )),
ListF = List Box( fileSelected, width( lbWidth ), nLines( 5 ), Numeric ), <BR />Button Box("OK", OKScript1)))); <BR />Funktion, in der lf definiert ist:
OKScript1 = Expr(
//win1 << CloseWindow;
lf = ListF << Get Items);
Außerhalb dieser beiden Funktionen:
print(lf);
Der variable Bereich *könnte* das Problem sein. „lf“ scheint innerhalb des Eval-Codeabschnitts erstellt und einem Wert zugewiesen zu werden: einer lokalen Variablen. Wenn dieser Codeabschnitt vollständig ist, löscht die Garbage Collection die lokale Variable.
Definieren Sie „lf“ und weisen Sie ihm frühzeitig einen falschen Wert zu, damit es global wird. Wenn die Auswertung später ausgeführt wird, wird kein lokales „lf“, sondern ein globales „lf“ definiert, das dann von der Auswertung aktualisiert wird.
Ich hänge immer noch daran fest und würde mich wirklich über jede Hilfe freuen. Ich werde bei Bedarf den vollständigen Code bereitstellen, danke.