Wenn Sie <
Problem: Bild wird unten abgeschnitten (db1, db2 sind eine Art Anzeigeboxen)
vlb = V List Box( db1, db2 ) << copy picture;
Fix:vlb = V List Box( db1, db2 );
nw = New Window( "nw", vlb );
nw << copy picture;
nw << close window;
Wenn Sie es also in ein Fenster einschließen, wird das Bild ordnungsgemäß kopiert, ohne abgeschnitten zu werden.Vielleicht funktionieren auch andere Displayboxen.
DJ
Ich bin mir nicht sicher, wie ich Ihr Problem replizieren soll. Können Sie Beispiele für bestimmte Anzeigeboxen geben, bei denen das Problem auftritt?Im Skript unten habe ich ein paar Kisten übereinander gestapelt und das vom vlb kopierte Bild mit und ohne Fenster war gleich.Beachten Sie, dass ich einige Syntaxänderungen an Ihrem Beispiel vorgenommen habe:
Names default to here(1);
dt = Open( "$Sample_data/big class.jmp" );
// make boxes that are bigger than the monitor when stacked, first two fixed sizse
db1 = spacer box( Size( 1000, 1000), Color( blue ) );
db2 = spacer box( Size( 1000, 1000), Color( red ) );
// third one in an outline box
db3 = report( Graph Builder(
Size( 800, 800 ),
Show Control Panel( 0 ),
Variables( X( :height ), Y( :weight ) ),
Elements( Points( X, Y, Legend( 2 ) ), Smoother( X, Y, Legend( 3 ) ) )
) );
//and last one wraps the third one in a fixed-size box
db4 = Scroll Box( Size( 1000, 1000), db3 );
// splitting your line into two, that way vlb is defined as the list box
// and not the result of copy picture
vlb = V List Box( db1, db2, db3, db4 );
// This gives a blue square on top of a red one (Fig 1):
vlb << copy picture;
// Not sure what is happening here, you haven't defined a 'Fix'namespace..
// Fix:vlb = V List Box( db1, db2 );
//In new window, it looks the same with two squares (Fig 2):
nw = New Window( "nw", vlb );
nw << copy picture;
nw << close window;
Hier die beiden Bilder nebeneinander:
