I have noticed that if scrolling in a Win32::GUI::Textfield set to readonly 
does not refresh the text properly.. Has anyone else seen this?  It this 
something that could be fixed before the next release?

Steve


-----Original Message-----
From: [EMAIL PROTECTED] on behalf of Robert May
Sent: Thu 7/21/2005 6:23 PM
To: Frazier, Joe Jr
Cc: perl-win32-gui-users@lists.sourceforge.net
Subject: [SPAM] - Re: [win32gui] RE: [perl-win32-gui-users] Next release [Was: 
System Tray problem after upgrade to v1.02 from v1.00] - Bayesian Filter 
detected spam
 
Frazier, Joe Jr wrote:

>>I would have though that targeting a bug-fix only release for 
>>a month's time might be realistic.  I'd like to get the 
>>following done:
>>- fix as many of the trackers as possible
>>- get all the current sample code to work properly
>>- include all the examples from the tutorial (and check that 
>>they all work :-), fixing the tutorial as necessary
>>- work on the test suite
>>- get a semi-decent web-page up as our Homepage at SourceForge.
>>    
>>
>
>
>Hey, if possible, can someone come up with an example of using Win32::GUI with 
>one or more background worker thread(s)? 
>
Here's my threads example that I'm working on - funnily I was just 
discussing it off-list.

#!perl -w
use strict;
use warnings;

use Win32::GUI;

use threads;
use Thread::Queue;

# Win32::GUI is not very thread friendly, so ensure the worker thread
# is created before you create any Win32::GUI objects
print "Boss: Starting\n";
print "Boss: creating queues\n";
my $qd = Thread::Queue->new();
my $qu = Thread::Queue->new();
print "Boss: creating worker thread\n";
my $t = threads->new(\&worker);

my $working = 0; # set by the boss when the worker is working
my $instruction = 1;

my $W = new Win32::GUI::Window (
        -pos => [100,100],
        -size => [200,200],
        -name => "MW",
) or die "Creating main window";

$W->AddButton (
        -text => "Execute Thread",
        -name => "But1",
) or die "Creating Button1";

# Timer is used to read results back from worker thread
$W->AddTimer( "Tim1", 1000) or die "Creating Timer";

$W->Show();
Win32::GUI::Dialog();

# tidy up
print "Boss: Sending kill to worker\n";
$qd->enqueue(undef);
print "Boss: About to wait for worker\n";
my $r = $t->join();
print "Boss: worker completed after executing $r instructions\n";

exit(0);

sub But1_Click
{
        $W->But1->Disable();
        print "Boss: Button Clicked: starting worker ($instruction)\n";
        $qd->enqueue($instruction++);
        $working = 1;

        return 1;
}

sub MW_Terminate
{
        if($working) {
                print "Boss: Can't exit while worker is working\n";
                return 0;
        }

        return -1;
}

sub Tim1_Timer
{
        #print "Boss: timer went off\n";

        if(my $val = $qu->dequeue_nb()) {
                print "Boss: worker finished instruction $val\n";
                $W->But1->Enable();
                $working=0;
        }

        return 1;
}

# The worker thread entry point
sub worker
{
        print "Worker: starting\n";
        my $count = 0;

        print "Worker: waiting for instructions\n";
        while(my $num = $qd->dequeue()) {
                print "Worker: got instruction $num\n";
                $count++;
                for my $i (0..5) {
                        print "Worker:doing work ($i)\n";
                        sleep(1);
                }
                print "Worker: Done instruction $num\n";
                $qu->enqueue($num);
        }

        print "Worker: Terminating after $count instructions\n";
        return $count;
}
__END__

It wouldn't take much to turn it into a proper example.  Does this seem like 
the right way to do it?


> Something I would like to see for example would be a "list" of sites in say a 
> Win32::GUI::Grid (or listview at worst case, if we want to not use extensions 
> in the examples) with one or more threads that periodically(using a 20 second 
> timer for example) connect to the sites and measure response times to 
> populate another column on the Grid.
>  
>
Interesting idea - again it wouldn't be very difficult

>I have seen one or two examples on the list for using threads, but it would be 
>nice to have one in the core distribution.
>
>Also, has anyone created a PPM for this release yet?  If so, is it available 
>on a repository, or only on the sourceforge site for download?  
>  
>
There's a PPM in the bribes repository 
(http://www.bribes.org/perl/ppmdir.html#ap)
  |ppm install http://www.bribes.org/perl/ppm/Win32-GUI.ppd
(I haven't tested it)

I am also in dialog with ActiveState, and it *should* get in their 
repository on their next build cycle (which was supposed to be last 
Tuesday night, but it doesn't look like it happened yet)

Rob.
|



-------------------------------------------------------
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
_______________________________________________
Perl-Win32-GUI-Users mailing list
Perl-Win32-GUI-Users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/perl-win32-gui-users


This email, and any files or previous email messages included with it, may 
contain confidential and/or privileged material. If you are not the intended 
recipient please contact the sender and delete all copies.

Reply via email to