> 
> my $Text = $W->AddTextfield(
> -name => 'TextField',
> -text => 'example',
> -top => 10,
> -left => 10,
> -width => 480,
> -height => 300,
> -multiline => 1,
> -tabstop => 1,
> );

The problem here seems to be with -multiline, because if you comment that
out it works. Probably best to use a RichEdit. 


> 
> my $Button = $W->AddButton(
> -name => 'But',
> -text => 'ok',
> -left => 200,
> -top => 400,
> -width => 100,
> -height => 25,
> -tabstop => 1,
> );
> 
> $W->Show;
> $W->Dialog;
> 
> 
> sub Textfield_KeyPress {
> my($key) = @_;
> 
> if($key == 9) {
> $W->But->SetFocus();
> }
> }
> 

This method is meant for RichEdit objects. I don't think it works with
textfields. THe below seems to do what you want, although it is not showing
the text in the RichEdit field, although it is getting the keypresses. I
forget what I did with this in the past -- maybe captured the keys, joined
them something like this?

sub Editor_KeyPress {
        my($key) = @_;
        push(@keystrokes,$key);
        $W->Editor->Text(@keystrokes);

???

### SCRIPT

use strict;
use Win32::GUI;

my $W = new Win32::GUI::Window(
-name => 'Window',
-text => 'Testing',
-top => 100,
-left => 100,
-width => 500,
-height => 500,
);

$W->{-dialogui} = 1;


my $EditorClass = new Win32::GUI::Class(
        -name => "Editor",
        -extends => "RichEdit",
        -widget => "RichEdit",
);


my $WindowEditor = $W->AddRichEdit(
        -class     => $EditorClass,
        -name      => "Editor",
        -pos => [ 0, 200 ],
        -multiline => 1,
        -left      => 10,
        -top       => 10,
        -width     => 480,
        -height    => 300,
        -exstyle   => WS_EX_CLIENTEDGE,
        -style     => WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_HSCROLL
                      | ES_LEFT | ES_MULTILINE,
        -tabstop   => 1,
        );



my $Button = $W->AddButton(
        -name => 'But',
        -text => 'ok',
        -left => 200,
        -top => 400,
        -width => 100,
        -height => 25,
        -tabstop => 1,
        -ok => 1,
);


$W->Show;
$W->Editor->SetFocus();
$W->Dialog;


sub Editor_KeyPress {

        my($key) = @_;
        
        print "Just got character $key\n";

        if($key == 9) {
                print "Just got a tab!\n";
                $W->But->SetFocus();
        }
}


sub But_Click
{
        print "Button was clicked.\n";
        $W->Editor->SetFocus();
}
_______________________________________________
Perl-Win32-Users mailing list
Perl-Win32-Users@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs

Reply via email to