From: Jeremy W. <jez...@ho...> - 2005-09-24 08:03:27
Attachments:
buddy.png
|
Hi, >I'm trying to create two text fields, each with an UpDown control. I'd >like one box to scroll from .5 to 8.5 in .5 increments, and the other from >.5 to 11 in .5 increments. > >When I buddy the control with the textfield, it appears that the control is >slightly taller than the textfield, which looks unsightly. I'm not sure what you mean - I've attached an image of a textfield control with a buddy - is that what you want to create? Cheers, jez. |
From: Scott S. <sco...@pi...> - 2005-09-24 16:54:00
|
Yes, that's very close to what I want. I don't need the dropdown part just a standard, one-line Text box, but except for that, it's exactly what I'd like. ----- Original Message ----- From: "Jeremy White" <jez...@ho...> To: <sco...@pi...>; <per...@li...> Sent: Saturday, September 24, 2005 4:03 AM Subject: RE: [perl-win32-gui-users] UpDown Control problems > Hi, > >>I'm trying to create two text fields, each with an UpDown control. I'd >>like one box to scroll from .5 to 8.5 in .5 increments, and the other from >>.5 to 11 in .5 increments. >> >>When I buddy the control with the textfield, it appears that the control >>is >>slightly taller than the textfield, which looks unsightly. > > I'm not sure what you mean - I've attached an image of a textfield control > with a buddy - is that what you want to create? > > Cheers, > > jez. > > |
From: Jeremy W. <jez...@ho...> - 2005-09-26 07:48:10
|
Hi, >Yes, that's very close to what I want. I don't need the dropdown part just >a standard, one-line Text box, but except for that, it's exactly what I'd >like. See the example below - much of the code was cut & pasted from one of my apps, so it's not as clear as it could/should be, but it should help. Cheers, jez. ------------- use Win32::GUI; use strict; my $buddyValue; my $win; Init(); $win->Show(); Win32::GUI::Dialog(); sub Init { #create the window $win =Win32::GUI::DialogBox->new('-maximizebox','0','-controlparent','0','-width','253','-helpbox','0','-menubox','1','-name','Buddy','-topmost','0','-resizable','0','-left','291','-text','Buddy','-top','257','-minimizebox','0','-height','162',@_); #add a text field and an updown control $win->AddTextfield('-width','84','-name','Price','-tabstop','1','-left','68','-visible','1','-top','24','-height','20','-addstyle','2','-tip','New Price'); $win->AddUpDown( -name => 'UD', -base => 10, -onScroll => sub {BuddyScroll($_[3])}, -autobuddy => 0, -arrowkeys => 1, -setbuddy => 0, -tip => 'Change price by one decimal place', ); #make the updown control a buddy of the text field $win->UD->SetBuddy($win->Price); #set a big range for the buddy $buddyValue=2500; $win->UD->Range(1,5000); $win->UD->Pos(2500); return $win; } sub BuddyScroll { #Move the value up/down by X decimal places my ($pos)=@_; my ($control,$value); my $control=$win->Price; $value=$buddyValue; my $val=$control->Text; my $dp=2; #X my $point=10; $point **= $dp; $point=1/$point; if ($value>$pos) { $val-=$point; } elsif ($value<$pos) { $val+=$point; } $control->Text($val) if $val>0; $buddyValue = $pos; } |