Solved

Imagelist Corruption

Posted on 2000-02-29
14
355 Views
Last Modified: 2010-04-04
Hiya, I have a problem that is driving me *wild* (grr... ;O) )

  We have an application that has many imagelists, with around 50 images per list (4 of them on different forms within the application)...

  Both me and one of my colleagues have a problem that occasionally these imagelists corrupt (looks like the same mask is used with a different image inside it)...

  We have tried:

  1) Downloading the latest drivers
  2) adding BusThrottle=1 to the [display] section of the SYSTEM.INI file
  3) Reducing the hardware acceleration
  4) Getting the latest DirectX drivers

  I have a PII 350 with an ATI Rage Pro AGP graphics card, and my colleague has a Twin celeron 350 with an S3 PCI graphics card.

  We both have Windows 98, and are both using Delphi 5 (service pack 1)

  Any ideas?

  Tim.
0
Comment
Question by:AttarSoftware
  • 6
  • 5
  • 2
  • +1
14 Comments
 
LVL 27

Expert Comment

by:kretzschmar
Comment Utility
? no, you've just done what i could suggest
0
 

Expert Comment

by:PetriWork
Comment Utility
Think of that images in a ImageList are stored on one big surface. Also don't mix image sizes at all...
I guess you already know this but it should be said...
0
 
LVL 1

Author Comment

by:AttarSoftware
Comment Utility
Yeah, all my images ar 16x16 in 256 color...

The biggest imagelist (which corrupts the most) contains around 75 images...

Tim.
0
 

Expert Comment

by:PetriWork
Comment Utility
Ok, that shouldn't be a problem then, check if changing the desktop colordepth helps.
I've used imagelists with thousands of 32*32*16 images so as you don't use "large" images you should have no problem....
Can you further describe the error symptoms?
0
 

Accepted Solution

by:
PetriWork earned 100 total points
Comment Utility
From the Delphi help:
Note:      Image lists depend on Comctl32.dll. If the system does not have the latest version installed, there may be problems getting images to appear.
0
 

Expert Comment

by:PetriWork
Comment Utility
Also, did you have the problem before installing Update Pack 1?
0
 
LVL 1

Author Comment

by:AttarSoftware
Comment Utility
Yeah, we have always had the problem...
I will check for a later version of Commctl32.dll, that is a good idea...

As for the symptoms, imaging that all of your images retain their shape, but the conttent gets shuffled.

Imagine the error occurs with imagelists with only two images (which it doesn't seem to do, but it will make it easier to explain)...

  1) A green square
  2) A red triangle

When the corruption occurs, you end up with a green square that is clipped to the shape of the triangle, and a red triangle that has been clipped to the size and shape of the square...  

It is really odd...  and as you can understand, the problem is much worse with 75 256 color shaded images! :O)

Tim.
0
How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

 
LVL 27

Expert Comment

by:kretzschmar
Comment Utility
? this problem i had sometimes with delphi, if the resources are very low at my workstation
0
 
LVL 1

Author Comment

by:AttarSoftware
Comment Utility
Maybe going to Win98 release 2 would help?
0
 
LVL 3

Expert Comment

by:SteveWaite
Comment Utility
I'm not sure if this little snippet helps but maybe rings a bell with someone somewhere...

I found D4/MS image lists implementation a pain with compatibility issues arising from Win95/IE4 versions. I've seen mangled images and none at all in menus on certain PC's. I'm afraid I'm too dull to remember exactly but I think the worst problems were found on early Win95 with IE4 updates. You may be right in going for later OS's. Beats ditching image lists?.

Steve
0
 

Expert Comment

by:PetriWork
Comment Utility
I've used an ImageList containing 4-20 images (handled dynamically) on several types of configuartions with no problems. Low resources is a possible problem but if you get to that point it's something else that is the problem. ImageList is used to conserve resources.
AttarSoftware, try checking the Microsoft Knowledgebase and Borland Community pages. They'd probably give a lot when it comes to bugs in TImageList. I wen't the whole race about half a year ago but now my ImageLists even work with S3 cards (whoo). These two places really helped me out.
Btw. Dynamic ImageLists are much more prone to errors than static ones. Are your Imagelist's content generated at run-time or are the images in the ImageLists already? If they're generated at runtime try doing all the stuff at design-time and see what happens.
0
 
LVL 1

Author Comment

by:AttarSoftware
Comment Utility
They are all static imagelists, poulated at design time...I check out the Microsoft Knowledgebase and Borland Community pages.  

I also upgraded to Win98 Second Edition this morning, so I will give it till tommorrow afternoon and if it hasnt corrupted again then I will assume that fixed it...

I hate intermittent bugs...

Be right back ;O)

Tim.
0
 

Expert Comment

by:PetriWork
Comment Utility
Imagelist can be a real pain sometimes =]. Though that they are created at design time means you've got a little more control over them...
0
 
LVL 1

Author Comment

by:AttarSoftware
Comment Utility
Well, going to Win98 Second Edition seems to have killed the problem (well, at least I havent had it for 3 days now), so I will be a good little expert, and accept this answer ;O)

Thanks :)

Tim.
0

Featured Post

Enabling OSINT in Activity Based Intelligence

Activity based intelligence (ABI) requires access to all available sources of data. Recorded Future allows analysts to observe structured data on the open, deep, and dark web.

Join & Write a Comment

A lot of questions regard threads in Delphi.   One of the more specific questions is how to show progress of the thread.   Updating a progressbar from inside a thread is a mistake. A solution to this would be to send a synchronized message to the…
In my programming career I have only very rarely run into situations where operator overloading would be of any use in my work.  Normally those situations involved math with either overly large numbers (hundreds of thousands of digits or accuracy re…
Internet Business Fax to Email Made Easy - With eFax Corporate (http://www.enterprise.efax.com), you'll receive a dedicated online fax number, which is used the same way as a typical analog fax number. You'll receive secure faxes in your email, fr…
This video discusses moving either the default database or any database to a new volume.

763 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now