See Inline Joe Frazier, Jr. Senior Support Engineer
Peopleclick Service Support Tel: +1-800-841-2365 E-Mail: [EMAIL PROTECTED] > -----Original Message----- > From: Frazier, Joe Jr > Sent: Monday, September 13, 2004 1:30 PM > To: 'Francesco Rizzi'; perl-win32-gui-users@lists.sourceforge.net > Subject: RE: [perl-win32-gui-users] HELP, please, on UpDown > control and textfield > > > > 1) the UpDown appears to attach to whatever control preceded it > 2) I am not 100% sure, but the updown control is used to > modifying numberlike thingies, not text. > http://msdn.microsoft.com/library/default.asp?url=/library/en- > us/cmctl298/html/vbobjupdowncontrol.asp Forget the last part of the sentence below and the one after it, I was being stupid Also, it appears that -setbuddy =>0 turns off the changing of the text field value, BUT it also appears that adding any creation options kills the scroll event also. > It looks like there are also some properties that may not be > exposed, notably, the Increment property to control the step > range between pos values. > > It also appears that we cannot set pos, etc during creation > (from GUI.pm): > > > ############################################################## > ############# > # (@)METHOD:new Win32::GUI::UpDown(PARENT, %OPTIONS) > # Creates a new UpDown object; > # can also be called as PARENT->AddUpDown(%OPTIONS). > # > # Class specific B<%OPTIONS> are: > # -align => left,right > # -nothousands => 0/1 > # -wrap => 0/1 > # -horizontal => 0/1 > # -autobuddy => 0/1 > # -setbuddy => 0/1 > # -arrowkeys => 0/1 > > > > Joe Frazier, Jr. > Senior Support Engineer > > Peopleclick Service Support > Tel: +1-800-841-2365 > E-Mail: [EMAIL PROTECTED] > > > -----Original Message----- > > From: [EMAIL PROTECTED] > > [mailto:[EMAIL PROTECTED] > On Behalf Of > > Francesco Rizzi > > Sent: Monday, September 13, 2004 11:40 AM > > To: perl-win32-gui-users@lists.sourceforge.net > > Cc: Francesco Rizzi > > Subject: [perl-win32-gui-users] HELP, please, on UpDown control and > > textfield > > > > Hi there. > > > > I've just started using the Win32::GUI library, so pardon > me if this > > turns out to be a newbie question. > > > > I'm having problems with the UpDown control. > > Here's what I'd like to end up with: > > > > a dialog with a status bar, a text field, an UpDown control > regulating > > the text field, and a Close button. The script will do more > stuff (and > > could even run without a GUI). It should update the status bar > > indicating what it is doing, and also add lines to the > textfield as it > > goes. The Close button should be disabled as the script does all it > > needs to do. > > When the script has done all it needs to do, the Close button is > > enabled so that the user can close the dialog. > > > > Here's what I have so far: > > almost everything I need. In particular, I have the script > creating, > > showing, and updating all the GUI as it needs, and passing > control to > > the GUI when it is done. > > This is the > > listing with all of this working *BUT no UpDown control*: I > call this > > test.pl > > > > #!/usr/bin/perl > > > > use Win32; > > use Win32::GUI; > > use strict; > > use warnings; > > > > my $GUI = 1; > > my $mainWindow; > > my $mainStatusBar; > > my $txtLog; > > > > MAIN: > > LOG("test started"); > > > > InitGUI() > > if $GUI; > > $mainStatusBar->Text("test initialized.") > > if $GUI; > > > > LOG("Will do 100 cycles."); > > DoSomething(100); > > > > $mainWindow->btnClose->Enable(); > > my $exitCode = Win32::GUI::Dialog(); > > LOG("Dialog cycle returned control to MAIN with exit code > > '$exitCode'."); > > > > exit(0); > > > > sub InitGUI > > { > > LOG("InitGUI started."); > > #Main Window, with status bar, Log textfield, and Close button: > > $mainWindow = new Win32::GUI::DialogBox( > > -text => "Test", > > -name => "MainWindow", > > -pos => [ 200, 400 ], > > -size => [ 600, 500 ] > > ) > > or ERROR("Could not initialize main window."); > > LOG("Main Window initialized."); > > $mainStatusBar = new Win32::GUI::StatusBar( > > $mainWindow, > > -name => > > "mainStatusBar", > > ) > > or ERROR("Could not initialize main window (status bar)."); > > $mainStatusBar->Text("Initializing"); > > LOG("Status Bar added."); > > $txtLog = new Win32::GUI::Textfield( > > $mainWindow, > > -name => "txtLog", > > -pos => [10, 10], > > -size => [550, 350], > > -disabled => 0, > > -visible => 1, > > -multiline => 1, > > -readonly => 1, > > -text => "Log Started" > > ) > > or ERROR("Could not initialize main window (log textfield)."); > > LOG("Log Textfield added."); > > $mainWindow->AddButton( > > -name => "btnClose", > > -pos => [10, 400], > > -size => [80, 20], > > -text => "Close", > > -disabled => 1, > > -cancel => 1, > > -default => 1 > > ) > > or ERROR("Could not initialize main window (Close button)."); > > LOG("Close button added."); > > > > LOG("All GUI elements initialized."); > > > > $mainWindow->Show(); > > LOG("Showing main window."); > > my $exitCode = Win32::GUI::DoEvents(); > > LOG("DoEvents cycle returned control to InitGUI with exit code > > '$exitCode'."); > > } > > > > sub TerminateGUI > > { > > print STDERR "Terminating GUI.\n"; > > return -1; > > } > > > > sub btnClose_Click() > > { > > print STDERR "Close button clicked.\n"; > > return TerminateGUI(); > > } > > sub MainWindow_Terminate() > > { > > print STDERR "Main Window Terminated.\n"; > > return TerminateGUI(); > > } > > > > sub DoSomething > > { > > my $numCycles = shift; > > LOG("DoSomething($numCycles)."); > > for(my $i = 0; $i<$numCycles; $i++) > > { > > LOG("Doing something $i"); > > } > > LOG("Done $numCycles cycles."); > > } > > > > sub LOG > > { > > my ($package, $filename, $line) = caller; > > > > if($GUI and $txtLog) > > { > > my $msg = $_[0]; > > $msg =~ s/[^\r]\n/\r\n/ms; > > $msg.="\r\n" > > unless $msg =~ /\r\n$/ms; > > > > $txtLog->Text($txtLog->Text().$msg); > > Win32::GUI::Update($mainWindow); > > } > > > > print "Test info:", scalar localtime(), ":", @_, "\n"; > > } > > > > sub WARN > > { > > my ($package, $filename, $line) = caller; > > if($GUI and $txtLog) > > { > > my $msg = $_[0]; > > $msg =~ s/[^\r]\n/\r\n/ms; > > $msg.="\r\n" > > unless $msg =~ /\r\n$/ms; > > > > $txtLog->Text($txtLog->Text().$msg); > > Win32::GUI::Update($mainWindow); > > } > > print STDERR "Test warning:", scalar localtime(), > ":line $line in > > package $package:", @_, "\n"; > > } > > > > sub ERROR > > { > > my ($package, $filename, $line) = caller; > > if($GUI and $txtLog) > > { > > my $msg = $_[0]; > > $msg =~ s/[^\r]\n/\r\n/ms; > > $msg.="\r\n" > > unless $msg =~ /\r\n$/ms; > > > > $txtLog->Text($txtLog->Text().$msg); > > Win32::GUI::Update($mainWindow); > > } > > $mainStatusBar->Text("ERROR !") > > if $GUI and $mainStatusBar; > > print STDERR "Test error:", scalar localtime(), ":line $line in > > package $package:", @_, "\n"; > > print STDERR "Test terminated with error.\n"; > > exit(1); > > } > > #=== > > > > I then created test2.pl, which is Identical, but I've added the > > following lines in InitGUI, > > $upDown = new Win32::GUI::UpDown( > > $mainWindow, > > -name => "upDown" > > ) > > or ERROR("Could not initialize main window (Up/Down control."); > > LOG("Up/Down control added."); > > $upDown->Buddy($txtLog); > > Immediately preceeding the line > > LOG("All GUI elements initialized."); > > > > What is happening with this one is that: > > the close button text is changed to '0' (zero); when the GUi gets > > control from the script, if I press the up or down arrows, > the text in > > the textfield is changed to a number (from 0 to 100, which > seems to be > > roughly the range). > > > > Any suggestions in regard? > > > > Thanks in advance for the time, > > F.O.R. > > > > > > > > ------------------------------------------------------- > > This SF.Net email is sponsored by: YOU BE THE JUDGE. Be one of 170 > > Project Admins to receive an Apple iPod Mini FREE for your > judgement > > on who ports your project to Linux PPC the best. Sponsored by IBM. > > Deadline: Sept. 13. Go here: http://sf.net/ppc_contest.php > > _______________________________________________ > > Perl-Win32-GUI-Users mailing list > > Perl-Win32-GUI-Users@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/perl-win32-gui-users > > > >