Casella di visualizzazione dinamica basata sulla selezione della casella combinataAlla ricerca di aiuto qui, non riesco a far funzionare correttamente la finestra di visualizzazione poiché continuava a tornare a una finestra vuota quando "Opzione 1" viene riselezionata (alcune foto per riferimento).
Apprezzo davvero l'aiuto!
names default to here(1);
Buttons = {"Button 1", "Button 2", "Button3"};
Boxes = {"Box 1", "Box 2", "Box 3"};
LB_Input_1 = lineupbox(ncol(2),spacing(5));
for(i=1,i<=nitems(Buttons),i++,
label1 = char(Buttons[i]);
bblabel1 = "clb_" || char(i);
eval(parse(evalinsert("\[LB_Input_1 << append(buttonbox("^label1^", ^bblabel1^ << append(clb2 << get selected)))]\")));
eval(parse(evalinsert("\[LB_Input_1 << append(^bblabel1^ = col list box("Numeric",minitems(1),maxitems(1),nlines(1)))]\")));
);
for(i=1,i<=nitems(Boxes),i++,
label1 = char(Boxes[i]);
neblabel1 = "neb_"||char(i);
eval(parse(evalinsert("\[LB_input_1 << append(Text box("^label1^"))]\")));
eval(parse(evalinsert("\[LB_input_1 << append(^neblabel1^ = Number edit box())]\")));
);
HB1 = hlistbox(
clb2 = filter col selector(dt1,all),
LB_input_1
);
LB_Input_2 = lineupbox(ncol(2),spacing(5));
for(i=1,i<=nitems(Buttons)-1,i++,
label1 = char(Buttons[i]);
bblabel1 = "clb_" || char(i);
eval(parse(evalinsert("\[LB_Input_2 << append(buttonbox("^label1^", ^bblabel1^ << append(clb2 << get selected)))]\")));
eval(parse(evalinsert("\[LB_Input_2 << append(^bblabel1^ = col list box("Numeric",minitems(1),maxitems(1),nlines(1)))]\")));
);
for(i=1,i<=nitems(Boxes)-1,i++,
label1 = char(Boxes[i]);
neblabel1 = "neb_"||char(i);
eval(parse(evalinsert("\[LB_input_2 << append(Text box("^label1^"))]\")));
eval(parse(evalinsert("\[LB_input_2 << append(^neblabel1^ = Number edit box())]\")));
);
HB2 = hlistbox(
clb2 = filter col selector(dt1,all),
LB_input_2
);
dt1 = current data table();
new window("Test",
vb1 = vlistbox(Text box(""),
Panel Box("Selection Option",H list box(text box("Select: "),
combo1 = combobox({"Option 1","Option 2"},
<< set function(function({this,index},
match(index,
1,
vb1 << append (try(view << delete);
view = HB1;
),
2,
vb1 << append (try(view << delete);
view = HB2;
)
)
))
)
)
),
text box (""),
view = HB1;
)
);



GraficaScriptingRi: casella di visualizzazione dinamica basata sulla selezione della casella combinataProblema e come eseguire il debug:
1. Eseguire lo script
2. Controlla il contenuto di HB1 e HB2 (DisplayBox [ListBox])
3. Passa all'opzione 2 e controlla il contenuto di HB1 (DisplayBox [])
Soluzione rapida (e sporca?) Che potrebbe aiutare. Guarda come ho cambiato le posizioni di riferimento HB1 e HB2 e le ho rese espressioni:
names default to here(1);
Buttons = {"Button 1", "Button 2", "Button3"};
Boxes = {"Box 1", "Box 2", "Box 3"};
HB1 = Expr(
LB_Input_1 = lineupbox(ncol(2),spacing(5));
for(i=1,i<=nitems(Buttons),i++,
label1 = char(Buttons[i]);
bblabel1 = "clb_" || char(i);
eval(parse(evalinsert("\[LB_Input_1 << append(buttonbox("^label1^", ^bblabel1^ << append(clb2 << get selected)))]\")));
eval(parse(evalinsert("\[LB_Input_1 << append(^bblabel1^ = col list box("Numeric",minitems(1),maxitems(1),nlines(1)))]\")));
);
for(i=1,i<=nitems(Boxes),i++,
label1 = char(Boxes[i]);
neblabel1 = "neb_"||char(i);
eval(parse(evalinsert("\[LB_input_1 << append(Text box("^label1^"))]\")));
eval(parse(evalinsert("\[LB_input_1 << append(^neblabel1^ = Number edit box())]\")));
);
hlistbox(
clb2 = filter col selector(dt1,all),
LB_input_1
);
);
HB2 = Expr(
LB_Input_2 = lineupbox(ncol(2),spacing(5));
for(i=1,i<=nitems(Buttons)-1,i++,
label1 = char(Buttons[i]);
bblabel1 = "clb_" || char(i);
eval(parse(evalinsert("\[LB_Input_2 << append(buttonbox("^label1^", ^bblabel1^ << append(clb2 << get selected)))]\")));
eval(parse(evalinsert("\[LB_Input_2 << append(^bblabel1^ = col list box("Numeric",minitems(1),maxitems(1),nlines(1)))]\")));
);
for(i=1,i<=nitems(Boxes)-1,i++,
label1 = char(Boxes[i]);
neblabel1 = "neb_"||char(i);
eval(parse(evalinsert("\[LB_input_2 << append(Text box("^label1^"))]\")));
eval(parse(evalinsert("\[LB_input_2 << append(^neblabel1^ = Number edit box())]\")));
);
hlistbox(
clb2 = filter col selector(dt1,all),
LB_input_2
);
);
dt1 = current data table();
new window("Test",
vb1 = vlistbox(Text box(""),
Panel Box("Selection Option",H list box(text box("Select: "),
combo1 = combobox({"Option 1","Option 2"},
<< set function(function({this,index},
try(view << delete);
match(index,
1,
vb1 << append (
view = HB1;
),
2,
vb1 << append (
view = HB2;
)
)
))
)
)
),
text box (""),
view = HB1;
)
);Ri: casella di visualizzazione dinamica basata sulla selezione della casella combinataGrazie @jthi:)La soluzione funziona!
In seguito, potresti chiarire i 3 passaggi di debug che hai menzionato? Non ho capito bene quel commento.
Problema e come eseguire il debug:
1. Eseguire lo script
2. Controlla il contenuto di HB1 e HB2 (DisplayBox [ListBox])
3. Passa all'opzione 2 e controlla il contenuto di HB1 (DisplayBox [])
Ri: casella di visualizzazione dinamica basata sulla selezione della casella combinataSicuro.Si spera che questo aiuti:
1. Aprire la finestra del registro
2. Esegui lo script -> Funziona bene
3. Cambia opzione da Opzione 1 a Opzione 2 -> Funziona bene
4. Modificare l'opzione da Opzione 2 a Opzione 1 -> La casella di visualizzazione scompare
5. Modificare di nuovo l'opzione dall'Opzione 1 all'Opzione 2 -> Casella di visualizzazione ancora mancante
A questo punto ho iniziato a chiedermi se qualcosa non va con HB1 e HB2 e se vengono eliminati quando si modificano le opzioni.
6. Eseguire nuovamente lo script. Evidenzia HB1 dalla finestra dello script ed esegui lo script per ottenere informazioni sulla variabile nella finestra del registro (DisplayBox [ListBox])
7. Modificare l'opzione da Opzione 1 a Opzione 2.Evidenzia HB1 dalla finestra dello script ed esegui lo script per ottenere informazioni sulla variabile nella finestra del registro (DisplayBox [])
8. Notare che ListBox è scomparso

9. Inizia a capire cosa va storto e come risolverlo
Questo potrebbe aiutarti a capire cosa sta succedendo: a un certo punto le caselle di riepilogo HB1 e HB2 H vengono eliminate.
Re: Casella di visualizzazione dinamica basata sulla selezione della casella combinata@jthi Grazie per aver spiegato il tuo approccio al debug!
Vedo il "Displaybox[]" abbastanza spesso nel registro, ma immagino di non aver capito bene il significato del registro. Grazie per le indicazioni!