새 창에서 프로그래밍 가능한 여러 개의 그래프 상자이것이 내가 어딘가에서 대답 할 수 있으면 사과 할 수 없었다.
Window 내에서 개별 그래프 상자를 생성하여 사용자 정의 모양을 그릴 수 있습니다. X 열과 Y 행이 있어야합니다. 즉, 숫자와 형식은 프로그래밍 가능해야합니다.
첨부 된 이미지와 약간 닮았습니다. 이것은 각 Graph Box가 전체적으로 작성된 것으로 만들어졌으며 분명히 이상적이지는 않습니다.
간단한 출발점으로, 나는 이것을 시도했다 :
win01 = New Window( "test",
Outline Box( "test",
V List Box(
For( yy = 1, yy <= 5, yy++,
H List Box(
For( xx = 1, xx <= 5, xx++,
aa = xx + 5 * ( yy - 1 );
Graph Box(
framesize( 200, 200 ),
X Scale( 0, 10 ),
Y Scale( 0, 10 ),
X Axis( Inc( 2 ), Minor Ticks( 1 ), Show Major Grid( 1 ), Show Minor Grid( 1 ) ),
Y Axis( Inc( 2 ), Minor Ticks( 1 ), Show Major Grid( 1 ), Show Minor Grid( 1 ) ),
XName( "Die X" ),
YName( "Die Y" ),
Text({1,5}, char(aa) )
)
)
)
)
)
)
);
그러나 물론 그것은 효과가 없었습니다. 아마 이것을 일종의 eval (대체 (expr ())) 형식 표현으로 묶어야하지만, JSL은 매우 녹슬었고 어디에서 시작해야할지 모르겠습니다!
어떤 제안이라도 감사하게 받아 들여질 것입니다.
많은 감사합니다,
매튜.

새 창에서 여러 개의 그래프 상자를 프로그래밍 할 수있는 수이 작품이 좋아질까요?
Names default to here(1);
vlb = V List Box();
For( yy = 1, yy <= 5, yy++,
vlb << Append(hlb = H List Box());
For( xx = 1, xx <= 5, xx++,
aa = xx + 5 * ( yy - 1 );
Eval(EvalExpr(
hlb << Append(
Graph Box(
framesize( 200, 200 ),
X Scale( 0, 10 ),
Y Scale( 0, 10 ),
X Axis( Inc( 2 ), Minor Ticks( 1 ), Show Major Grid( 1 ), Show Minor Grid( 1 ) ),
Y Axis( Inc( 2 ), Minor Ticks( 1 ), Show Major Grid( 1 ), Show Minor Grid( 1 ) ),
XName( "Die X" ),
YName( "Die Y" ),
Text({1,5}, Expr(char(aa)) )
)
);
));
);
);
win01 = New Window( "test",
Outline Box( "test",
vlb
)
);
새 창에서 여러 개의 그래프 상자를 프로그래밍 할 수있는 수좋아요, 잘 작동합니다! 이제는 왜 작동하는지 시도해 보겠습니다.
많은 감사합니다,
매튜.
새 창에서 여러 개의 그래프 상자를 프로그래밍 할 수있는 수늦은 나태를 유감스럽게 생각합니다. 거기에 넣었어야 했어. 네가 왜 작동하지 않는지에 대한 나의 일반적인 이유가있다.
JMP는 표현식을 glue 문에서 마지막 표현식을 반환하도록합니다 (이는 연산자가 수행하는 것입니다)
x = 1;
y = 2;
// is the same as
glue(x=1, y=2);
//that's why it returns 2 if you run it.
그러나 루프의 경우 마지막으로 반환하지 않습니다. 그저 달릴 뿐이야. 그러나 HListbox와 같은 디스플레이 박스에서 마지막 작업 (단일 그래프 상자) 만 표시합니다. 디스플레이 박스를 다룰 때. 그 안에 일반 접착제 문을 넣어 각 표시 상자를 반환 할 수 있습니다.
new window("Test",
x = 2;
textbox("This won't show up");
textbox("This will show up"), //notice this is a comma. The whole glue will return just this last textbox
hlb = hlistbox(); // this will also show up because nothing is after it even though it's a semicolon
);
// to add to the hlistbox dynamically, append is often used.
wait(2);
hlb << Append(Textbox("Some other box"));
기본적으로, 당신의 hlistbox 생성자 내부에 for ()를 쓰지 않고 참조로 생성 한 다음 for 루프에 (그들)을 추가한다.
귀하의 hlb 함께 행의 각 반복 hlb 만들고 추가하고 난 그냥 더 이상 필요하지 않기 때문에 참조를 덮어 씁니다.
나는 이것이 물건을 더 분명하게 그리고 더 작게하지 않기를 바란다.