Benötigen Sie Hilfe beim Skripting von Panel BoxIch habe eine Panel Box mit V List Box, die Combo Box und zwei If Boxes mit Inhalt unterschiedlicher Größe hat. Abhängig von der Combo-Box-Auswahl zeige ich entweder eine kleinere If-Box oder eine größere If-Box an.
notReadyTablesText = "Need to join tables";
readyTableText = "I have the table";
selectorOptions = Eval List( {notReadyTablesText, readyTableText} );
Panel Box( "Select tables",
stVLB = V List Box(
readyTablesSelector = Combo Box(
selectorOptions,
selector = readyTablesSelector << Get Selected();
Show( selector );
If(
selector == notReadyTablesText,
notReadyTables << Set( 1 );
readyTables << Set( 0 );,
selector == readyTableText,
notReadyTables << Set( 0 );
readyTables << Set( 1 );
)
;
),
notReadyTables = If Box(
1,
V List Box(
Button Box( "Table 1", t1Open ),
Button Box( "Table 2", t2Open ),
join = Button Box( "Join Tables",
notImplemented;
)
)
),
readyTables = If Box( 0, Button Box( "Load Tables", loadTable ) )
)
);
Wenn ich das Kombinationsfeld umschalte, ändert sich die Größe der Panel-Box und alles, was sich unter dieser Panel-Box befindet, springt. Wie behalte ich die gleiche Größe der Panel Box?
Ich habe versucht, Höhe festlegen, Automatisches Strecken festlegen, Mindestgröße festlegen () usw.
SkripterstellungBetreff: Benötigen Sie Hilfe beim Skripting von Panel BoxDie manuelle Einstellung kann etwas schwierig sein Schaltflächenfeld () Größen (normalerweise verwende ich a H-Splitterbox () und Lineup-Box() um JMP alles automatisch anpassen zu lassen), aber die beste Methode, die ich gefunden habe, ist das Senden der Nachricht <<MINDESTGRÖSSE festlegen=""> .</MINDESTGRÖSSE>
notReadyTablesText = "Need to join tables";
readyTableText = "I have the table";
selectorOptions = Eval List( {notReadyTablesText, readyTableText} );
pb = Panel Box( "Select tables",
stVLB = V List Box(
readyTablesSelector = Combo Box(
selectorOptions,
selector = readyTablesSelector << Get Selected();
Show( selector );
If(
selector == notReadyTablesText,
notReadyTables << Set( 1 );
readyTables << Set( 0 );,
selector == readyTableText,
notReadyTables << Set( 0 );
readyTables << Set( 1 );
)
;
),
notReadyTables = If Box(
1,
V List Box(
bb1 = Button Box( "Table 1", t1Open ),
bb2 = Button Box( "Table 2", t2Open ),
join = Button Box( "Join Tables",
notImplemented;
)
)
),
readyTables = If Box( 1, bb3 = Button Box( "Load Tables (really long button name)", loadTable ) )
)
);
new window( "test",
pb
);
boxes = {bb1, bb2, bb3, join};
max size = Max( {readytables, notReadyTables} << Get Width );
boxes << Set Min Size( max size, 25 ) << set Max Size( max size, 25 );
readyTables << Set( 0 );Betreff: Benötigen Sie Hilfe beim Skripting von Panel BoxHier ist ein Beispiel für die Verwendung H-Splitterbox () und Lineup-Box() um dies zu tun.Beachten Sie, dass dies auch alles in einen anonymen Namespace einfügt, um ein Übersprechen zu verhindern, wenn mehrere Fenster gleichzeitig von diesem Skript geöffnet werden.
Names Default to Here( 1 );
self = New Namespace();
self:notReadyTablesText = "Need to join tables";
self:readyTableText = "I have the table";
self:selectorOptions = Eval List( {self:notReadyTablesText, self:readyTableText} );
Eval( Eval Expr(
self:button generator = Function( {title, callback},
{Default Local},
self = Namespace( Expr( self << Get Name ) );
Eval( Parse( Eval Insert( JSL Quote(
box = Button Box( title, <<SET function=""></SET>Betreff: Benötigen Sie Hilfe beim Skripting von Panel BoxIch spreche von Größe in X, ich spreche von Größe in Y.
In Ihrem Beispiel ändert sich die Höhe der Panel Box.
Dies:

dagegen:

Ich habe andere Schalttafeln unter dieser - und sie fangen an zu springen.
Wie auch immer, ich habe aufgegeben und es vorerst als Line Up Box implementiert.