Me again, sorry for the flood of posts.

Yes, it's a bug in GUI.pm

Win32::GUI::ImageList just uses $self without defining it like:
my $self = {};

So to fix the bug, just find Win32::GUI::ImageList in GUI.pm,
(it's on line 2141 in 0.0.558), and add a definition of $self as
above.

Steve

----- Original Message ----- 
From: "Steve Pick" <[EMAIL PROTECTED]>
To: <perl-win32-gui-users@lists.sourceforge.net>
Sent: Sunday, October 26, 2003 8:32 PM
Subject: Additional: Multiple ImageList bug


> Additional:
>
> print $ARCHIVE."\n".$ICONS."\n";
>
> gives:
> Win32::GUI::ImageList=HASH(0x265e044)
> Win32::GUI::ImageList=HASH(0x265e044)
>
> Oh dear. Serious bug. They're in the same memory. I'll look at the
> Win32::GUI code and see if this is a simple bug that even i can fix.
>
> Steve
>
> ----- Original Message ----- 
> From: "Steve Pick" <[EMAIL PROTECTED]>
> To: <perl-win32-gui-users@lists.sourceforge.net>
> Sent: Sunday, October 26, 2003 8:12 PM
> Subject: Multiple ImageList bug
>
>
> > Hi,
> >
> > I have some code that creates two ImageList objects:
> > our $ARCHIVE = new Win32::GUI::ImageList(64,64,ILC_COLOR32,0,100);
> > our $ICONS = new Win32::GUI::ImageList(16,16,ILC_COLOR32 |
ILC_MASK,0,10);
> >
> > don't worry about those constants, they're defined at the top of my
script
> > as:
> >  ILC_COLOR32 => 0x00000020,
> >  ILC_MASK    => 0x00000001
> >
> > A listview is set to use imagelist $ICONS, and another listview is set
to
> > use imagelist $ARCHIVE. However, On adding even one image to $ARCHIVE,
> both
> > listviews always show images from $ARCHIVE. In fact $ICONS shows 16x16
> > segments of 64x64 images added to $ARCHIVE.
> >
> > I'm adding images to $ICONS and $ARCHIVE like so:
> > $ICONS->Add(new Win32::GUI::Bitmap("resource/downgreen_i.bmp"),new
> > Win32::GUI::Bitmap("resource/down_m.bmp"));
> > # the above is done outside of any subroutine.
> >
> > $ARCHIVE->Add(new Win32::GUI::Bitmap("archivetemp.bmp"));
> > # the above is done in an addfilestoarchive function.
> >
> > I've no idea what's causing $ICONS to always show images from $ARCHIVE.
> > $ICONS is filled at the start of the application, $ARCHIVE is cleared
and
> > filled whenever the addfilestoarchive sub is called.
> >
> > Do my bitmap objects need to be persistent or something? I would have
> > thought perl's garbage collector would realise not to clear the
anonymous
> > bitmap objects created with ImageList::Add.
> >
> > Help!
> >
> > Steve Pick
> > perl-win32-gui-users@lists.sourceforge.net
> >
> >
> >
>


Reply via email to