Moin!
WIndows 98 SE hat einen beschränkten
GDI Handle Pool von 128 KB - daher kann das
OS maximal (128 * 1024 / 4) 32768 Handles für
GDI Objekte vergeben. (oder waren die 128 KB erst ab ME?). Zumindest braucht eine TImage Instanz vom System schon allein derer 6 (mem
dc, bitmap
handle, bitmap canvas
dc, bitmap canvas pen, bitmap canvas font, bitmap canvas brush) wodurch du sehr schnell in bredouille kommst. (der
GDI Handle Pool ist global, also alle Applikation
GDI + System
GDI Handles)..
Empfehlung:
Nimm eine TImageList und setze dort die Höhe/Weite der gewünschten Vorschaubilder. Darin dann die !verkleinerten! Bilder ablegen und in der Dateianzeige keine TImage mehr instanziieren - selber malen. Einfach das Bild aus der TImageList holen und direkt dahin malen.
Ich habe mal eine klasse geschrieben die dieses Manko nach dem selben Prinzip wie eine TImageList (intern ein Bild) behebt und damit konnte ich eine Anwendung schreiben die dann mehrere Tausend Bitmaps laden und handeln konnte (bis 23.000 Bitmaps ausprobiert), da die Anwendung dies immer machen musste. Diese Klasse werde ich hier aber nicht veröffentlichen, daher nutze die TImageList oder bau dir nach dem selben Prinzip eine solche Klasse...
MfG
Muetze1