Every day that I use Perl, I am insanely greatful it is not vbScript.  It
seems anything I do in vbScript, I can do in half the lines of code in perl!

Thanks for the InputBox code.  It will come in quite handy.

Andy

On 12/6/05, Robert May <[EMAIL PROTECTED]> wrote:
>
> Andy Pastuszak wrote:
> > I am trying to create a simple input box.  I created a window, added a
> text area and an Ok and Cancel button.
>
> So you're most of the way there.
>
> > In my vbScript days I would simply use the InputBox function and it did
> all the work for me.
>
> This isn't VB!
>
> > Is there some way to do this in perl using win32::gui or another module?
>
> In Win32::GUI
>
>
> #!perl -w
> use strict;
> use warnings;
>
> my $userinput = InputBox->GetUserInput();
>
> if(defined $userinput and length $userinput) {
>         print "Got text: '$userinput'\n";
> }
> else {
>         print "No Text\n";
> }
>
> exit(0);
>
> package InputBox;
> use strict;
> use warnings;
> use Win32::GUI();
>
> # Display a window with an edit control and
> # returns text if OK button pressed, undef on cancel
>
> # Full Keyboard navigation (TAB, SHIFT+TAB, ENTER, ESC)
>
> sub GetUserInput
> {
>         my $text = undef;
>
>         my $mw = Win32::GUI::DialogBox->new(
>                 -caption => "Enter text ...",
>                 -pos => [100,100],
>                 -size => [300,90],
>                 -helpbox => 0,
>         );
>
>         my $tf = $mw->AddTextfield(
>                 -pos => [10,10],
>                 -size => [$mw->ScaleWidth() - 20, 20],
>                 -tabstop => 1,
>         );
>
>         $mw->AddButton(
>                 -text => 'Ok',
>                 -ok => 1,
>                 -default => 1,
>                 -tabstop => 1,
>                 -pos => [$mw->ScaleWidth()-156,$mw->ScaleHeight()-30],
>                 -size => [70,20],
>                 -onClick => sub { $text = $tf->Text(); return -1; },
>         );
>
>         $mw->AddButton(
>                 -text => 'Cancel',
>                 -cancel => 1,
>                 -tabstop => 1,
>                 -pos => [$mw->ScaleWidth()-80,$mw->ScaleHeight()-30],
>                 -size => [70,20],
>                 -onClick => sub { return -1; },
>         );
>
>         $mw->Show();
>         $tf->SetFocus();
>         Win32::GUI::Dialog();
>         return $text;
> }
>
>
> Regards,
> Rob.
> --
> Robert May
> Win32::GUI, a perl extension for native Win32 applications
> http://perl-win32-gui.sourceforge.net/
>

Reply via email to