From: FARRINGTON, R. <rya...@ci...> - 2002-05-28 14:15:25
|
here is a sample break from the code.... starts on line 162 ends on line 185. sub ::btnOpen_Click { defined(my $win = $Win32::GUI::Loft::window{winFileDisplay}) or return(1); my %file1 = $win->tvwTreeView()->ItemInfo( $win->tvwTreeView->SelectedItem() ) or return(1); my $file = $file1{'-text'}; $interface->execute('check_server', "$file"); until($interface->get_state eq 'fin') { my $void = $win->DoEvents(); $win->pbProgressBar()->StepIt(); sleep(1); } $win->pbProgressBar()->SetPos(0); my @return_value = $interface->get_retval; my $msg = ""; foreach my $line (@return_value){ $msg = $msg . $line; } $win->reFileSelected()->Text($msg); return(1); } -----Original Message----- From: FARRINGTON, RYAN [mailto:rya...@ci...] Sent: Tuesday, May 28, 2002 8:48 AM To: 'per...@li...' Subject: [perl-win32-gui-users] eek! =) Using Win32::GUI and I'm having a problem with the program reporting to windows that it is not responding. I know that it is because of the loop I have the program in but I still want the user to work while I'm processing in the background. I found a reference to $win->DoEvents() but as far as I can see that works but it errors out with "Use of uninitialized value in subroutine entry at hotfix.pl line 172" Gah =( I'm starting to hate this... I've looked at the archives but no search sucks =) Anyone have any ideas? |
From: Frazier, J. J. <Joe.Frazier@PeopleClick.com> - 2002-05-28 14:57:11
|
Change=20 my $void =3D $win->DoEvents(); =20 to : Win32::GUI::DoEvents(); =20 This is a class method, not an instance method. Also, this is just a = straight method call, no arguments or assignment back to a variable is = needed. I can ONLY assume that the problem is that the DoEvents method = is looking for a class method being passed in, and since it gets an = object, it does not assign whatever variable it needs inside the sub.... = Or maybe not. I dont know. Anyway, use the second form and not the = first. 8>) =20 Joe Frazier, Jr.=20 -----Original Message----- From: FARRINGTON, RYAN [mailto:rya...@ci...] Sent: Tuesday, May 28, 2002 10:15 AM To: 'per...@li...' Subject: RE: [perl-win32-gui-users] eek! =3D) here is a sample break from the code.... starts on line 162 ends on line = 185. =20 sub ::btnOpen_Click { defined(my $win =3D $Win32::GUI::Loft::window{winFileDisplay}) or = return(1); my %file1 =3D $win->tvwTreeView()->ItemInfo( = $win->tvwTreeView->SelectedItem() ) or return(1); my $file =3D $file1{'-text'}; $interface->execute('check_server', "$file"); until($interface->get_state eq 'fin') { my $void =3D $win->DoEvents(); $win->pbProgressBar()->StepIt(); sleep(1); } $win->pbProgressBar()->SetPos(0); my @return_value =3D $interface->get_retval; my $msg =3D ""; foreach my $line (@return_value){ $msg =3D $msg . $line; } $win->reFileSelected()->Text($msg); =20 return(1); } -----Original Message----- From: FARRINGTON, RYAN [mailto:rya...@ci...] Sent: Tuesday, May 28, 2002 8:48 AM To: 'per...@li...' Subject: [perl-win32-gui-users] eek! =3D) Using Win32::GUI and I'm having a problem with the program reporting to = windows that it is not responding. I know that it is because of the loop = I have the program in but I still want the user to work while I'm = processing in the background. I found a reference to $win->DoEvents() = but as far as I can see that works but it errors out with "Use of = uninitialized value in subroutine entry at hotfix.pl line 172" Gah =3D( = I'm starting to hate this... I've looked at the archives but no search = sucks =3D) Anyone have any ideas? |
From: Morbus I. <mo...@di...> - 2002-05-28 16:14:38
|
>Using Win32::GUI and I'm having a problem with the program reporting to >windows that it is not responding. I know that it is because of the loop I >have the program in but I still want the user to work while I'm processing >in the background. I found a reference to $win->DoEvents() but as far as I >can see that works but it errors out with "Use of uninitialized value in >subroutine entry at hotfix.pl line 172" Gah =( I'm starting to hate >this... I've looked at the archives but no search sucks =) Anyone have any >ideas? Yup, I see this in my own scripts. From what I understand, it's equivalent to Win32::GUI saying "hey! there are no events for me to respond to". I've done the requisite searching, .pm looking, and so forth, and the only non-destructive way I stopped the error was to add the following to my script: # override the warning signal, which # will stop thousands of DoEvent warnings # happening under Win32::GUI. BEGIN { $SIG{'__WARN__'} = sub { warn $_[0] unless (caller())[0] =~ /Win/; } } Which basically says to ignore any warnings that the Win32 libraries pass off to your script. Of course, you'd only want to do this once you're sure that your code is working perfectly and flags no other warnings. -- Morbus Iff ( i'm the droid you're looking for ) Culture: http://www.disobey.com/ and http://www.gamegrene.com/ Tech: http://www.oreillynet.com/pub/au/779 - articles and weblog icq: 2927491 / aim: akaMorbus / yahoo: morbus_iff / jabber.org: morbus |
From: Johan L. <jo...@ba...> - 2002-05-28 17:21:30
|
At 12:15 2002-05-28 -0400, Morbus Iff wrote: >Yup, I see this in my own scripts. From what I understand, it's equivalent >to Win32::GUI saying "hey! there are no events for me to respond to". I've >done the requisite searching, .pm looking, and so forth, and the only >non-destructive way I stopped the error was to add the following to my script: Maybe if you disable warnings before the call to DoEvents? Like so: { #Introduce a block to limit the lexical scope local $^W; #Localizing it will set it to 0 Win32::GUI::DoEvents(); } #End lexical scope, restore the localized warnings setting Does that work? /J -------- ------ ---- --- -- -- -- - - - - - Johan Lindström Sourcerer @ Boss Casinos jo...@ba... Latest bookmark: "Why templating?" http://www.perlmonks.org/index.pl?node_id=135630 dmoz (1 of 5): /Computers/Programming/Languages/Perl |