Collistbox()에서 Try()를 사용할 때 오류가 발생했습니다.기본적으로 다른 표시 상자를 포함하는 사용자 지정 대화형 창을 만들고 있으며 for 루프를 사용하여 선택 입력을 단순화하려고 합니다. 예를 들어, 콤보 상자와 콜리스트 상자가 모두 있고 루프 문을 사용하여 둘 다에 대한 입력을 얻으려고 합니다. 그러나 이것을 할 때 대신 오류가 발생했습니다. 제가 표현을 잘못 쓰고 있습니까? (오류 로그 첨부)
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Window( "Col List Box Example",
vlistbox(
var1 = combobox({"one", "two", "three"}),
hlistbox(Col List Box( all, width( 250 ), maxSelected( 1 ) ),
var2 = Col List Box()
)
)
);
var2 << append("height");
AA = {"",""};
for(i=1,i<=2,i++,
temp1 = "var"||char(i);
eval(
substitute(
expr(try(AA[i] = expr.temp1 << get, AA[i] = expr.temp1 << get items)), //try to use get, if error, use get items
expr(expr.temp1),parse(temp1)
)
)
);
show(AA);
스크립팅Re: Collistbox()에서 Try()를 사용할 때 오류가 발생했습니다.ListBoxBox와 함께 사용할 때 << Get이 오류를 발생시키지 않기 때문에 Try가 작동하지 않는다고 생각합니다(기록할 메시지만). 이 방법으로 값을 얻으려면 예를 들어 << 클래스 이름을 사용할 수 있습니다.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
New Window("Col List Box Example",
V List Box(
var1 = Combo Box({"one", "two", "three"}),
H List Box(Col List Box(all, width(250), maxSelected(1)), var2 = Col List Box())
)
);
var2 << append("height");
AA = {"", ""};
For(i = 1, i <= 2, i++,
temp1 = "var" || Char(i);
Eval(
Substitute(
Expr(
If(expr.temp1 << class name == "ComboBox",
AA[i] = expr.temp1 << get
,
AA[i] = expr.temp1 << get items
)
), //try to use get, if error, use get items
Expr(expr.temp1), Parse(temp1)
)
);
);
Show(AA); //AA = {1, {"height"}};
나는 일반적으로 이와 같은 값을 얻지 않는 것이 좋으며 변수 이름을 동적으로 생성하는 것(예를 들어 목록 또는 연관 배열에 대한 참조를 저장하는 것) 이외의 다른 방법을 알아내려고 합니다.