This may be a Windows-specific bug. Consider the
following two scripts:
GRID VERSION: (warning: slow)
for {set i 0} {$i < 80} {incr i} {
for {set j 0} {$j < 125} {incr j} {
frame .x${i}y${j} -width 5 -height 5 -background red
grid .x${i}y${j} -row $i -column $j -padx 1 -pady 1
}
}
PACK VERSION:
for {set i 0} {$i < 80} {incr i} {
frame .x$i
for {set j 0} {$j < 125} {incr j} {
frame .x${i}.y${j} -width 5 -height 5 -background red
pack .x${i}.y${j} -side right -padx 1
}
pack .x$i -side bottom -pady 1
}
On both ActiveTcl 8.4.3 and the Cygwin's Tcl/Tk 8.4.x
build, these scripts leave some of the last
(upper-left) frames undisplayed on my Windows box
(Pentium III 1.2GHz with 640 MB of RAM). These frames
seem to be mapping to the upper-left corner of the
screen (not the window!). See the attached screenshot.
There may be a memory-related issue here, but it seems
reproducible by several people on #tcl.
The same behavior occurs with buttons instead of
frames; it's just easier to make frames small.
As a side note, the grid version of the code is
excessively slow, and can take a minute or more to
display. See bug 220200.
PNG screenshot of undisplayed frames
Logged In: YES
user_id=991282
Originator: NO
On Linux, with 8.5a6 or 8.4.14, the pack and grid versions are both rendered correctly.