Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi TImageList nimmt nur eine bestimmte Zahl an Bildern auf (https://www.delphipraxis.net/91736-timagelist-nimmt-nur-eine-bestimmte-zahl-bildern-auf.html)

kalmi01 9. Mai 2007 09:35


TImageList nimmt nur eine bestimmte Zahl an Bildern auf
 
Moin moin,

ich habe da ein recht seltsames Phänomen:

In meiner Anwendung befinden sich mehrere TImageList.
Alle habe eine Bildgrösse von 256x256.
Eins davon soll zur Laufzeit mit bis zu 500 Bildern befüllt werden.
Es werden aber nur 158 Bilder aufgenommen !
Ab 159 ist alles Weiss.

Speichermangel ist nicht das Problem.
Interessanterweise wird ab dem 159ten Bild auch kein Speicher mehr alloziiert.

Delphi-Quellcode:
JPG.LoadFromFile(Datei);

// ein paar Berechnungen, um tmpRect zu erhalten

Bild.Canvas.StretchDraw(tmpRect, JPG);

if not Bild.Empty
then begin
       KollektionView.Items.BeginUpdate;
         j := KollektionList.Add(Bild, nil);
         with KollektionView.Items.Add do
         begin
           Caption := StrList.Strings[i];
           ImageIndex := j;
         end;
      KollektionView.Items.EndUpdate;
    end;

Bernhard Geyer 9. Mai 2007 09:39

Re: TImageList nimmt nur eine bestimmte Zahl an Bildern auf
 
Es gibt ja noch die Grenze bezüglich GDI-Ressourcen :-)
Alternativ könnte zufälligerweise das 159-Bild ein kaputtes BMP sein das Windows hier durcheinander bringt.

kalmi01 9. Mai 2007 09:47

Re: TImageList nimmt nur eine bestimmte Zahl an Bildern auf
 
Hallo Bernhard,
Zitat:

Alternativ könnte zufälligerweise das 159-Bild ein kaputtes BMP sein das Windows hier durcheinander bringt.
definitiv nicht.
Sind alle handverlesen.

Zitat:

Es gibt ja noch die Grenze bezüglich GDI-Ressourcen
:gruebel: :gruebel: :gruebel: Welche Grenze ?
Klär mich bitte auf.

159 x 256 x 256 x 3 macht nichteinmal 32MB.

Bernhard Geyer 9. Mai 2007 09:53

Re: TImageList nimmt nur eine bestimmte Zahl an Bildern auf
 
Zitat:

Zitat von kalmi01
Zitat:

Es gibt ja noch die Grenze bezüglich GDI-Ressourcen
:gruebel: :gruebel: :gruebel: Welche Grenze ?

Die Anzahl der GDI-Handels.

Zitat:

Zitat von kalmi01
Klär mich bitte auf.

Hat das deine Mutter nicht gemacht? :???:
Zitat:

Zitat von kalmi01
159 x 256 x 256 x 3 macht nichteinmal 32MB.

Du glaubst doch wohl nicht das Windows (32-Bit) für GDI-Elemente für einen Prozess 2 GB verwenden kann? Je nach Windows-Version können schon 1000 GDI-Elemente nur noch mit einem harten Reboot den Rechner zum leben zu bringen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:34 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz