Programmierbare Anzahl von mehreren Grafikfeldern in einem neuen FensterEntschuldigung, wenn dies anderswo beantwortet wurde, konnte ich es nicht finden.
Ich möchte in einem Fenster mehrere separate Diagrammfelder generieren, in die ich dann benutzerdefinierte Formen zeichnen kann. Es sollten X Spalten und Y Zeilen vorhanden sein - dh die Anzahl und das Format müssen programmierbar sein.
Ich möchte, dass es ein bisschen wie das angehängte Bild aussieht. Dies wurde mit jeder vollständig ausgeschriebenen Grafikbox erstellt, was offensichtlich nicht ideal ist.
Als einfachen Ausgangspunkt habe ich Folgendes versucht:
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) )
)
)
)
)
)
)
);
Aber das hat natürlich nicht funktioniert. Ich muss dies wahrscheinlich in eine Art eval (substitute (expr ())) - Ausdruck einschließen, aber meine JSL ist sehr verrostet und ich weiß nicht, wo ich anfangen soll!
Vorschläge würden dankbar empfangen.
Danke vielmals,
Matthew.

Betreff: Programmierbare Anzahl mehrerer Grafikfelder in einem neuen FensterWürde so etwas funktionieren?
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
)
);
Betreff: Programmierbare Anzahl mehrerer Grafikfelder in einem neuen FensterSuper, das klappt gut! Jetzt werde ich versuchen herauszufinden, warum es funktioniert.
Danke vielmals,
Matthew.
Betreff: Programmierbare Anzahl mehrerer Grafikfelder in einem neuen FensterEntschuldigung für meine späte Faulheit. Hätte das da reinstecken sollen. Ist hier meine allgemeine Sache auf, warum Ihr nicht arbeitet.
JMP veranlasst Ausdrücke, die letzten Ausdrücke in einer glue-Anweisung zurückzugeben (was der Operator; tut)
x = 1;
y = 2;
// is the same as
glue(x=1, y=2);
//that's why it returns 2 if you run it.
For-Schleifen geben jedoch nicht das Letzte zurück. Sie rennen einfach. Aber selbst wenn dies der Fall wäre, würde in einer Displaybox wie HListbox nur das Letzte angezeigt (eine einzelne Grafikbox). Im Umgang mit Displayboxen, in seiner Konstruktion. Sie können regelmäßige Klebe-Anweisungen einfügen, um jedes Anzeigefeld zurückzugeben.
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"));
im grunde erstellen sie es mit einem verweis, anstatt es in ihrem hlistbox-konstruktor () abzuspielen, und hängen sie es dann in ihren for-schleifen an.
Mit Ihrer hlb erstelle ich mit jeder Iteration der Zeile eine hlb und hänge sie an und überschreibe dann einfach die Referenz, da ich sie nicht mehr benötige.
Ich hoffe, das macht die Dinge klarer und nicht weniger.