<snip - missing rant> use Win32::GUI; # Binding to Win32 GUI use Win32::GUI::Grid; # Thin binding to Win32 GUI Grid use integer; my $TopWindow = new Win32::GUI::Window( # Create Main Window -name => 'TopWindow', -left => 30, -height => 450, -title => 'GUI Editor', -top => 20, -width => 570, ); my $Grid = $TopWindow->AddGrid( # Create Grid object -columns => 2, -fixedcolumns => 1, -fixedrows => 1, -name => "Property Grid", -pos => [ 390, 0 ], -rows => 10, -visible => 1, ); my $Grid1= $TopWindow->AddGrid( # Create Grid object -columns => 2, -fixedcolumns => 1, -fixedrows => 1, -name => "Property Grid", -pos => [ 100, 0 ], -rows => 10, -visible => 1, ); $Grid->SetCellText(0, 0, "Property" ); $Grid->SetCellText(0, 1, "Value" ); $Grid1->SetCellText(0, 0, "Property" ); $Grid1->SetCellText(0, 1, "Value" ); print "\n"; my $TotalHeight = $Grid->GetRowHeight(0); my $Height; print "Row = 0 Height = [ $TotalHeight, $TotalHeight ])\n"; for my $row (1..$Grid->GetRows()) { $Grid->SetCellText($row, 0, "Property $row " ); $Grid1->SetCellText($row,0, "Property $row " ); } for my $row (1..4) { my $col = 1; $Grid->SetCellText($row, $col, "Cell : <$row, $col>"); $Grid1->SetCellText($row,$col, "Cell : <$row, $col>"); } my $row = 1; for my $CellType ( GVIT_NUMERIC, GVIT_DATE, GVIT_DATECAL, GVIT_TIME, GVIT_CHECK , GVIT_COMBO, GVIT_LIST, GVIT_URL, GVIT_NUMERIC) { $Height = $Grid->GetRowHeight($row); $TotalHeight += $Height; print "Row = $row Height = [ $Height, $TotalHeight ])\n"; $Grid->SetCellType($row, 1, $CellType); $Grid1->SetCellType($row++,1, $CellType); } $Grid->SetCellCheck ( 5, 1, 1 ); $Grid1->SetCellCheck ( 5, 1, 1 ); my $Width = $Grid->GetVirtualWidth(); #+20; my $Height = $Grid->GetVirtualHeight(); #+10; $Grid->SetCellOptions( 6, 1, [ "Combo", "Box", "New" ]); $Grid->SetCellOptions( 7, 1, [ "List", "Box", "New" ]); $Grid->Resize($Width, $Height); $Grid1->SetCellOptions( 6, 1, [ "Combo", "Box", "New" ]); $Grid1->SetCellOptions( 7, 1, [ "List", "Box", "New" ]); $Grid1->Resize($Width+6, $Height+6); print "\n Actual Virtual W/O Bars\n"; printf("Height %5d %7d %8d\n", $TotalHeight, $Grid->GetVirtualHeight, $Grid->GetVirtualHeight+6); printf("Width %5d %7d %8d\n", $Grid->GetColumnWidth(0) + $Grid->GetColumnWidth(1) , $Grid->GetVirtualWidth() , $Grid->GetVirtualWidth()+6 ); $TopWindow->Show(); # makes TopWindow visible Win32::GUI::Dialog(); # Windows control loop
Robert May <[EMAIL PROTECTED]> wrote: Arthur Schwarz wrote: > Grid (again). > > My grid has a cell with a list in it. I don't know if that's significant but: > 1: The reported grid Width is too small and a horizontal scroll bar is > presented, and > 2: The reported grid height is too short and a vertical scroll bar is > presented. > > The dimensions are: > > [virtual virtual + ] > > With W/o scroll bar > [ 156 176 ] width > [ 190 200 ] height [snip] Please take the time to post a *short*, but complete, example of the problem that you are asking for help with. It is very time consuming to put together example scripts to see if I can see the same behaviour, especially if I don't have any detailed knowledge of the control that you are talking about. Please read this if you haven't before: http://www.catb.org/~esr/faqs/smart-questions.html That said, if you're trying to autosize the grid, then I doubt that it takes into account any extra space required for any controls that may be needed - but we'd have to read the documentation for the underlying Grid Control, which on my previous forays I have discovered to be rather sparse, leaving us only the underlying source code to unravel to work out what is going on. Regards, Rob.