Hi jamie,
thanks for your constructive answer.
You are over complicating your program..
Until now I considered it as very easy
Use a TDrawGrid and a TImagelist..
I never worked with DrawGrids, but will surely have a look at it.
May be I should give you a more detailed information about what I have in mind.
Two years ago I wrote a program for an older family member, who always struggled with getting her pictures from the camera and sending them per email. So my prog starts as soon as she inserts her sdcard, copies new pictures to a defined folder, Exif-rotates them and shows the thumbnails with the newest on top. They can be selected without the need of holding ctrl or shift by checking a checkbox and a simple click starts the email program with the selected pictures attached to a new message.
The code consist of a class TThumbViewer derived from TScrollBox and a TThumb derived from TPanel. This panel contains a TImage, a TLabel and a TCheckBox. A load procedure gives the ThumbViewer a StringList containing the paths to the pictures. This procedure loads the TThumbs into a TScrollBox, positions them and makes them visible. Finally a TThread is started that uses a fast loading and scaling algorithm to draw the thumbs into the TImages.
That's all
This program runs without major issues, maybe because of a low number of pictures. But know I started a new project with the need of larger 'thumbs', that results in the mentioned error.
So to return to the DrawGrid I would assume that I would have to create a canvas containing the image, the label and the checkbox and creating this canvas again every time the thumb is selected or checked. Isn't that more complicated than my solution?
Chris