¿Cómo hacer referencia y actuar en un ListBox creado dinámicamente?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hola,
Necesitaba crear una GUI que fuera capaz de agregar y eliminar entradas de ListBox con un simple clic en el botón.
Logré averiguar cómo agregar pares de ListBox / button (envueltos en un HListBox) dinámicamente usando la secuencia de comandos a continuación, pero no estoy seguro de cómo hacer referencia a ellos para el botón de eliminar.
Nueva ventana ("WINDOW_NAME", << Modal,
OutlineBox ("OUTLINE_NAME",
test_lb = VListBox (
ButtonBox ("Añadir",
test_lb << Añadir (
HListBox (
OutlineBox ("TEST_INSTANCE_" || Char (Today ())),
ButtonBox ("Eliminar" // de alguna manera elimina solo el objeto HListBox actual
)
)
)
)
ButtonBox ("OK")
)
)
);
Re: ¿Cómo hacer referencia y actuar en un ListBox creado dinámicamente?Hola Jason.
El siguiente ejemplo muestra cómo usar una función para auto-referencia el ButtonBox y luego eliminar el padre en el botón Eliminar:
New Window( "WINDOW_NAME",
<<MODAL></MODAL>
¡Espero que eso ayude!
Wendy
Re: ¿Cómo hacer referencia y actuar en un ListBox creado dinámicamente?Trabajando un poco más, pensé que la única forma de hacerlo era dar a cada cuadro un índice dinámico utilizando los comandos Eval (Parse (EvalInsert ())).
Puede haber una mejor manera de hacerlo, pero esto parece funcionar para mí.
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>