Here’s a working example of your code. It only took minor changes to get it
working. I've added comments where I made changes.

=cut
use Win32::GUI;                 # Binding to Win32 GUI
use Win32::GUI::Grid;           # Binding to Win32 GUI Grid
#use Win32::GUI::Constants;      # Windows constants
use integer;
 
my $TopWindow = new Win32::GUI::Window(       # Create Main Window
        -name         => 'TopWindow',
        -helpbox      => 1,
        -left         => 30,
        -hashelp      => 1,
        -height       => 450,
        -maxwidth     => 565,
        -minheight    => 380,
        -minwidth     => 565,
        -title        => 'GUI Editor',
        -top          => 20,
        -width        => 570,
   );
 
my $Grid = $TopWindow->AddGrid(   # Create Grid object
        -columns           =>  2,
        -doublebuffer      =>  1,
        -editable          =>  1,
#       -enable            =>  Enable
        -fixedcolumns      =>  1,
        -fixedrows         =>  1,
#       -height            =>  Heigth
        -hscroll           =>  0,
#       -left              =>  Left position
        -name              =>  "Property Grid",
#       -parent            =>  $Editor::Win::TopWindow,
#       -popstyle          =>  Pop style

# The original example had the grid way off to the right. This was causing
use Win32::GUI;                 # Binding to Win32 GUI
use Win32::GUI::Grid;           # Binding to Win32 GUI Grid
#use Win32::GUI::Constants;      # Windows constants
use integer;
 
my $TopWindow = new Win32::GUI::Window(       # Create Main Window
        -name         => 'TopWindow',
        -helpbox      => 1,
        -left         => 30,
        -hashelp      => 1,
        -height       => 450,
        -maxwidth     => 565,
        -minheight    => 380,
        -minwidth     => 565,
        -title        => 'GUI Editor',
        -top          => 20,
        -width        => 570,
   );
 
my $Grid = $TopWindow->AddGrid(   # Create Grid object
        -columns           =>  2,
        -doublebuffer      =>  1,
        -editable          =>  1,
#       -enable            =>  Enable
        -fixedcolumns      =>  1,
        -fixedrows         =>  1,
#       -height            =>  Heigth
        -hscroll           =>  0,
#       -left              =>  Left position
        -name              =>  "Property Grid",
#       -parent            =>  $Editor::Win::TopWindow,
#       -popstyle          =>  Pop style
        -pos               =>  [0, 0 ],
#       -pushstyle         =>  Push style
        -rows              =>  9,
#        -size              =>  [ 140, $TopWindow->Height()-43 ],
#       -style             =>  Default style
#       -top               =>  Top  position
        -visible           =>  1,
        -vscroll           =>  0,
#       -width             =>  140,
  );
 
  $Grid->SetCellText(0, 0, "Property" );
  $Grid->SetCellText(0, 1, "Value" );
 
  for my $row (1..$Grid->GetRows()) {
    $Grid->SetCellText($row, 0, "Property $row " );
  }
 
  for my $row (1..4) {

 # I removed the loop, since it wasn't needed for this example
 #   for my $col (0..$Grid->GetColumns()) {
      $Grid->SetCellText($row, 1, "Cell : <$row, 1>");
  #  }
  }
 
  my $row = 1;

  for my $CellType (GVIT_NUMERIC, GVIT_DATE, GVIT_DATECAL, GVIT_TIME,
GVIT_CHECK, GVIT_COMBO, GVIT_LIST, GVIT_URL) {

# Changed the column from 2 to 1, since the column is 0 indexed
     $Grid->SetCellType($row++, 1, $CellType);
  }

# Changed the column from 2 to 1
  $Grid->SetCellOptions( 5, 1, 1 );  # button?
  $Grid->SetCellOptions( 6, 1, [ "Combo", "Box" ]);
  $Grid->SetCellOptions( 7, 1, [ "List", "Box" ]);

# Moved the AutoSize method to TopWindow_Resize
#  $Grid->AutoSize();
  $TopWindow->Show();                             # makes TopWindow visible
  Win32::GUI::Dialog();                           # Windows control loop

# Added TopWindow_Resize so that the grid would be resized when
# the window is resized.
sub TopWindow_Resize {
  my ($width, $height) = ($TopWindow->GetClientRect)[2..3];
  $Grid->Resize ($width, $height);
  $Grid->AutoSize(GVS_BOTH);
  $Grid->ExpandLastColumn;
}# the grid to be cut off, not showing the dropdown arrow for the list/combo
# boxes
        -pos               =>  [0, 0 ],
#       -pushstyle         =>  Push style
        -rows              =>  9,
#        -size              =>  [ 140, $TopWindow->Height()-43 ],
#       -style             =>  Default style
#       -top               =>  Top  position
        -visible           =>  1,
        -vscroll           =>  0,
#       -width             =>  140,
  );
 
  $Grid->SetCellText(0, 0, "Property" );
  $Grid->SetCellText(0, 1, "Value" );
 
  for my $row (1..$Grid->GetRows()) {
    $Grid->SetCellText($row, 0, "Property $row " );
  }
 
  for my $row (1..4) {
 #   for my $col (0..$Grid->GetColumns()) {
      $Grid->SetCellText($row, 1, "Cell : <$row, 1>");
  #  }
  }
 
  my $row = 1;

  for my $CellType (GVIT_NUMERIC, GVIT_DATE, GVIT_DATECAL, GVIT_TIME,
GVIT_CHECK, GVIT_COMBO, GVIT_LIST, GVIT_URL) {
     $Grid->SetCellType($row++, 1, $CellType);
  }
  $Grid->SetCellOptions( 5, 1, 1 );  # button?
  $Grid->SetCellOptions( 6, 1, [ "Combo", "Box" ]);
  $Grid->SetCellOptions( 7, 1, [ "List", "Box" ]);
#  $Grid->AutoSize();
  $TopWindow->Show();                             # makes TopWindow visible
  Win32::GUI::Dialog();                           # Windows control loop

sub TopWindow_Resize {
  my ($width, $height) = ($TopWindow->GetClientRect)[2..3];
  $Grid->Resize ($width, $height);
  $Grid->AutoSize(GVS_BOTH);
  $Grid->ExpandLastColumn;
}

=end

Brian Millham
This message traveled at least 44,000 miles to reach you!
Creator of the DW6000 Monitor
http://www.millham.net/dw6000
[EMAIL PROTECTED] 
-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of
Arthur Schwarz
Sent: Thursday, October 12, 2006 12:35 PM
To: Brian Millham; perl-win32-gui-users@lists.sourceforge.net
Subject: Re: [perl-win32-gui-users] Grid questions

Thanks. I tried it and was able to get a check box displayed and I am
working on getting the List and Combo box. Any suggestions on what, where ,
how, how much, or when would be a great help.
 
As a separate note to Robert May, it appears that the following constants
are missing from Win32::GUI::Constants (or I am missing the point):
  GVIT_CHECK   = Check Box
  GVIT_DATE    = Date control
  GVIT_DATECAL = Date control with calendar control
  GVIT_DEFAULT = 
  GVIT_COMBO   = Combo Box
  GVIT_LIST    = List Box
  GVIT_NUMERIC = Numeric control edit
  GVIT_TIME    = Time control
  GVIT_URL     = Url control
 
  GVL_BOTH Both vertical and horizontal grid lines
  GVL_NONE No grid lines.
  GVL_HORZ Horizontal grid lines only.
  GVL_VERT Vertical grid lines only.
 
  GVNI_ABOVE       = Search above initial cell
  GVNI_ALL         = Search all cells in the grid starting from the given
cell
  GVNI_AREA        = Search all cells below and to the right of the given
cell
  GVNI_BELOW       = Search below initial cell
  GVNI_DROPHILITED = Search for drop highlighted cells
  GVNI_FIXED       = Search for fixed cells
  GVNI_FOCUSED     = Search for focus cell
  GVNI_MODIFIED    = Search for modified cells
  GVNI_READONLY    = Search for read-only cells
  GVNI_SELECTED    = Search for selected cells
  GVNI_TOLEFT      = Search to the left of the initial cell
  GVNI_TORIGHT     = Search to the right of the initial cell
 
  GVS_BOTH Use fixed and non-fixed cells.
  GVS_DATA Use only non-fixed cells.
  GVS_DEFAULT Default.
  GVS_HEADER Use only the fixed cells.


Brian Millham <[EMAIL PROTECTED]> wrote: 
Hi Art,
You have it right.  You just got caught by the 0 index.  You are trying to
set the contents of cell , but you should be setting cell 1.
 
  for my $CellType (GVIT_NUMERIC, GVIT_DATE, GVIT_DATECAL, GVIT_TIME,
GVIT_CHECK, GVIT_COMBO, GVIT_LIST, GVIT_URL) {
     $Grid->SetCellType($row++, 1, $CellType);
  }
  $Grid->SetCellOptions( 5, 1, 1 );  # button?
  $Grid->SetCellOptions( 6, 1, [ "Combo", "Box" ]);
  $Grid->SetCellOptions( 7, 1, [ "List", "Box" ]);
I changed the above lines, and your sample worked for me.
Brian Millham
This message traveled at least 44,000 miles to reach you!
Creator of the DW6000 Monitor
http://www.millham.net/dw6000
[EMAIL PROTECTED] 
---
avast! Antivirus: Inbound message clean.
Virus Database (VPS): 0641-3, 10/12/2006
Tested on: 10/12/2006 5:04:51 PM
avast! is copyright (c) 2000-2006 ALWIL Software.
http://www.avast.com

---
avast! Antivirus: Outbound message clean.
Virus Database (VPS): 0641-3, 10/12/2006
Tested on: 10/12/2006 8:04:30 PM
avast! is copyright (c) 2000-2006 ALWIL Software.
http://www.avast.com





Reply via email to