From: Robert M. <rm...@po...> - 2005-10-18 19:02:24
|
Glenn W Munroe wrote: > Rob, > > I just downloaded the 5.8 PPM from your site. It failed a new dependency > check for Test::More. This module is available on CPAN, but not on the > ActiveState repository. I had a quick look through the code and couldn't > find where it was used; could it be a hangover from some testing you were > doing? Is the dependency meant to be there? Is it really necessary? I've a > feeling that many people will give up when they can't find the module in the > ActiveState repository... Thanks for that spot. I didn't see it as I have Test::More installed - I a bit surprised it's not in the AS repository, but it should be removed from the PPM dependencies, as it's only needed to run the tests if you're building from source. I'll fix it before the real release. Regards, Rob. |
From: Robert M. <rm...@po...> - 2005-10-30 18:41:16
|
Hi Glenn, Thanks for the investigation. The changes were made by Reini, to try to bring the behaviour in line with what part 4 of the tutorial says about timers. Having looked at this text myself, I'm not sure that what he has done matches what the tutorial says, although I think his implementation is good. Under the current implementation kill() destroys the timer completely (including, as you say, removing it's reference from the parent window). To disable the timer temporarily you need to set the interval to 0. If we all agree that the new implementation is good, then I'll update the Timer documentation and part 4 of the tutorial to reflect this. I'll also make sure that this behavioural change gets mentioned in the release notes. Regards, Rob. Glenn W Munroe wrote: > I had been building the new version using MinGW, but I just reinstalled it > from Rob's PPM. This installed the new documentation correctly and I now see > that there is some Timer documentation. > > Apologies for flooding the list with replies to myself... > > -----Original Message----- > From: per...@li... > [mailto:per...@li...] On Behalf Of Glenn > W Munroe > Sent: Friday, 28 October, 2005 12:27 > To: rm...@po... > Cc: per...@li... > Subject: RE: [perl-win32-gui-users] Next Release soon > > > I spent a little time to dig into this more. As I suspected, this isn't a > bug, but a change in implementation. Under version 1.01_01, the Kill() > method simply made a call to the system function KillTimer. Version 1.02_02 > explicitly destroys the timer, which includes removing its definition from > the window hash. Hence, my "nothing strange" code below was defining each > timer then destroying it in the next step! > > In practice, there was a more subtle difference. The effect of the old > Kill() method was simply to disable the timer; it could then be resurrected > with a new Interval(). I'm not sure that this behaviour was correct or > desired, but I was using it in my program. I can't just remember why I did > it that way, but it was probably a "safe" way of ensuring the timer didn't > fire until I was ready for it (the alternative being either to make the > Interval() very large--for some arbitrary value of "very large"--or to > repeatedly kill and redefine the timer). It could also have been to cover a > deeper problem in the implementation, but time will tell. > > The Win32::GUI documentation for Timers is bare, but the MSDN documentation > does suggest that the new behaviour is correct. However, version 1.02_02 > will break any program using the old behaviour. The addition of a simple > definition to the method documentation would help. > > Glenn > > -----Original Message----- > From: gw...@se... [mailto:gw...@se...] > Sent: Friday, 21 October, 2005 16:44 > To: rm...@po... > Cc: gw...@se...; per...@li... > Subject: RE: [perl-win32-gui-users] Next Release soon > > > Sorry for the delay, but it's been hectic at work this week. > > I've attached (an image of) the error message. Sure enough, a 'dump' of the > main window object shows that the timers don't get registered for some > reason: > > bless({ > # tied Win32::GUI::Window > "-accel" => 41_681_429, > "-font" => -334_885_755, > "-handle" => 2_032_212, > "-minheight" => 595, > "-minwidth" => 850, > "-name" => "mw", > "-timers" => {}, > "-type" => 0, > > etc. > > There's nothing strange about the declaration of the timers: > > $mw->AddTimer("tmList",100000); > $mw->tmList->Kill(); > $mw->AddTimer("tmLoop",100000); > $mw->tmLoop->Kill(); > > etc. > > The same script runs with no problem on 1.01_01. There, the dump shows: > > bless({ > # tied Win32::GUI::Window > "-accel" => 25_036_785, > "-font" => "-1626733967", > "-handle" => 6_358_280, > "-minheight" => 595, > "-minwidth" => 850, > "-name" => "mw", > "-timers" => { > 1 => "tmList", > 2 => "tmLoop", > 3 => "tmStatus", > 4 => "tmYearVerify", > 5 => "tmTrackVerify", > 6 => "tmGenreVerify", > }, > "-type" => 0, > > etc. > > I'll keep trying to narrow it down and will post back if I do. > > Glenn > > ------------------- reply --------------- > >>From: rm...@po... >>To: gw...@se... >>Cc: per...@li... >>Subject: RE: [perl-win32-gui-users] Next Release soon >>Date: 2005-10-19 15:40:09 >>---------------------------------- >>gw...@se... wrote: >> >>>hit another more worrying problem: I have a large-ish program, which >>>uses a number of timers. With 1.02_02 I get an error whenever any one >>>of the timers tries to fire (Can't locate auto/tmList.al in @INC...). >>>I tried to replicate this in a smaller program, but was unable to; a >>>simple program with a timer works fine. It's quite possible that my >>>program has a flaw, of which 1.01_01 is more tolerant, but there may >>>be a problem in the new GUI code. >> >>That is indeed worrying. There have been some minor changes to the >>timer code that Reini made when he put his tests together, but I can't >>immediately see anything that would cause this. >> >>Typically when I see errors like that it turns out to be a mis-spelled >>method call or window name, but if that was the case I would expect it >>to fail in 1.01_01 too. >> >>If you can't get a short example to exhibit this problem, can you post >>the exact error message that you're getting. >> >>Rob. >>-- >>Robert May >>Win32::GUI, a perl extension for native Win32 applications >>http://perl-win32-gui.sourceforge.net/ >> > > > > > > ------------------------------------------------------- > This SF.Net email is sponsored by the JBoss Inc. > Get Certified Today * Register for a JBoss Training Course > Free Certification Exam for All Training Attendees Through End of 2005 > Visit http://www.jboss.com/services/certification for more information > _______________________________________________ > Perl-Win32-GUI-Users mailing list > Per...@li... > https://lists.sourceforge.net/lists/listinfo/perl-win32-gui-users > http://perl-win32-gui.sourceforge.net/ > > > |
From: Robert M. <rm...@po...> - 2005-11-13 20:05:15
|
Glenn W Munroe wrote: > I just downloaded the 5.8 PPM from your site. It failed a new dependency > check for Test::More. This module is available on CPAN, but not on the > ActiveState repository. I had a quick look through the code and couldn't > find where it was used; could it be a hangover from some testing you were > doing? Is the dependency meant to be there? Is it really necessary? I've a > feeling that many people will give up when they can't find the module in the > ActiveState repository... [snip] > I hit another more worrying problem: I have a large-ish program, which > uses a number of timers. With 1.02_02 I get an error whenever any one > of the timers tries to fire (Can't locate auto/tmList.al in @INC...). I have fixed both of these issues (I think). You can find PPMs (Perl 5.6 and 5.8) at http://www.robmay.me.uk/win32gui/ These PPMs are labeled as version V1.02_03, and reflect the current CVS code-base. You should consider them beta software (i.e. they may not work properly), but I have been using the 5.8 code for some time now with no problems. If you are so inclined, then download and give it a spin. Feedback to this list please. Regards, Rob. -- Robert May Win32::GUI, a perl extension for native Win32 applications http://perl-win32-gui.sourceforge.net/ |
From: Glenn W M. <gw...@se...> - 2005-11-14 12:28:57
|
Rob, I downloaded the 5.8 PPM for 1.02_03 from your site again. It installed with no problem straight out of the box, so the dependency problem is gone. The old version of my program with the timers works fine, as does the new one, where I'd worked around the new 'Kill' behaviour. All looks good to me--good work, Rob. Glenn -----Original Message----- From: Robert May [mailto:rm...@po...] Sent: Sunday, 13 November, 2005 17:05 To: Glenn W Munroe Cc: per...@li... Subject: Re: Next Release soon Glenn W Munroe wrote: > I just downloaded the 5.8 PPM from your site. It failed a new dependency > check for Test::More. This module is available on CPAN, but not on the > ActiveState repository. I had a quick look through the code and couldn't > find where it was used; could it be a hangover from some testing you were > doing? Is the dependency meant to be there? Is it really necessary? I've a > feeling that many people will give up when they can't find the module in the > ActiveState repository... [snip] > I hit another more worrying problem: I have a large-ish program, which > uses a number of timers. With 1.02_02 I get an error whenever any one > of the timers tries to fire (Can't locate auto/tmList.al in @INC...). I have fixed both of these issues (I think). You can find PPMs (Perl 5.6 and 5.8) at http://www.robmay.me.uk/win32gui/ These PPMs are labeled as version V1.02_03, and reflect the current CVS code-base. You should consider them beta software (i.e. they may not work properly), but I have been using the 5.8 code for some time now with no problems. If you are so inclined, then download and give it a spin. Feedback to this list please. Regards, Rob. -- Robert May Win32::GUI, a perl extension for native Win32 applications http://perl-win32-gui.sourceforge.net/ |