Come fare riferimento e agire su un ListBox creato dinamicamente?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ciao,
Avevo bisogno di costruire una GUI che fosse in grado di aggiungere e rimuovere le voci di ListBox con un semplice clic del pulsante.
Sono riuscito a capire come aggiungere dinamicamente le coppie ListBox / button (avvolto in un HListBox) usando lo script qui sotto, ma non sono sicuro di come fare riferimento a loro per il pulsante di cancellazione.
NewWindow ("WINDOW_NAME", << Modal,
OutlineBox ( "OUTLINE_NAME",
test_lb = VListBox (
ButtonBox ( "Aggiungi",
test_lb << Aggiungi (
HListBox (
OutlineBox ("TEST_INSTANCE_" || Char (Today ())),
ButtonBox ( "Rimuovi" // in qualche modo rimuove solo l'oggetto HListBox corrente
)
)
)
),
ButtonBox ( "OK")
)
)
);
Ri: Come fare riferimento e agire su un ListBox creato dinamicamente?Ciao, Jason.
L'esempio seguente mostra come utilizzare una funzione per auto-referenziare il ButtonBox e quindi eliminare il genitore nel pulsante Rimuovi:
New Window( "WINDOW_NAME",
<<MODAL></MODAL>
Spero che aiuti!
Wendy
Ri: Come fare riferimento e agire su un ListBox creato dinamicamente?Lavorando un po 'più a lungo, ho pensato che l'unico modo per farlo era di assegnare ad ogni box un indice dinamico usando i comandi Eval (Parse (EvalInsert ())).
Potrebbe esserci un modo migliore per farlo, ma questo sembrava funzionare per me.
test_inst = 0;
NewWindow("WINDOW_NAME", << Modal,
OutlineBox("OUTLINE_NAME",
test_lb = VListBox(
ButtonBox("Add", test_inst += 1;
Eval(
Parse(
EvalInsert("
test_lb << Append(
test_inst_lb_^test_inst^ = HListBox(
OutlineBox(\!"TEST_INSTANCE_\!" || Char(^test_inst^)),
TextBox(Char(^test_inst^)),
test_inst_bb_^test_inst^ = ButtonBox(\!"Remove\!",
Print(<<GETPROPERTYLIST></GETPROPERTYLIST>