Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   viele Images zur Laufzeit laden und in Liste speichern (https://www.delphipraxis.net/57905-viele-images-zur-laufzeit-laden-und-liste-speichern.html)

Alex_ITA01 28. Nov 2005 15:29


viele Images zur Laufzeit laden und in Liste speichern
 
Hallo erstmal,
ich erstelle mir zur Laufzeit wirklich viele kleine Images und speichere mir diese in einer TList.
Dies alles wird über eine For-Schleife realisiert. Bei jeden Durchlauf der For-Schleife erstelle (create) ich mir ein Image und ändere bestimmte Eigenschaften. Diese Images speichere ich in einer TList. Muss ich jetzt am Ende der For-Schleife wieder das selbst erstellte Image löschen (.free)?
Klingt irgendwie komisch aber ich glaube, wenn ich das nicht mache, dauert es ewig, eh die Anwendung startet...
Ich hoffe ihr könnt mir helfen.
MFG Alex

Bernhard Geyer 28. Nov 2005 15:33

Re: viele Images zur Laufzeit laden und in Liste speichern
 
Du mußt es freigeben, da TList nicht nur Objekte speichern kann und deshalb keine Automatismus zur Freigabe hat.
TObjectList wäre besser geeignet. Man kann TObjectList so konfigieren da es selbständig die Freigabe der Zugewiesenen Objekte durchführt.

Alex_ITA01 28. Nov 2005 15:42

Re: viele Images zur Laufzeit laden und in Liste speichern
 
das sieht in etwa so aus:

Delphi-Quellcode:
for i := 0 to 150 do
begin
  MeinImage := TMeinImage.Create;
  //Mache irgendwas mit MeinImage
  Liste.Add(MeinImage);
  //Hier jetzt MeinImage.Free und MeinImage := Nil???
end;
Die Liste brauche ich dann für später...
MFG Alex

Tyrael Y. 28. Nov 2005 15:52

Re: viele Images zur Laufzeit laden und in Liste speichern
 
...mach es so, wie Bernhard es gesagt hat

Delphi-Quellcode:

...
 List := TObjectList.Create(True);
...


for i := 0 to 150 do
begin
  MeinImage := TMeinImage.Create;
  //Mache irgendwas mit MeinImage
  Liste.Add(MeinImage);
  //Hier jetzt MeinImage.Free und MeinImage := Nil???
end;


//und im Detroy
...
  List.free;
...

Thorben86 28. Nov 2005 15:59

Re: viele Images zur Laufzeit laden und in Liste speichern
 
Zitat:

Zitat von Alex_ITA01
Muss ich jetzt am Ende der For-Schleife wieder das selbst erstellte Image löschen (.free)?

Wenn du das erstellte Image mit free löschst, kann doch auch die liste nicht mehr auf das Image(objekt) zugreifen, da es ja wieder gelöscht wurde. Die liste Speichert doch nur einen Pointer auf ein Objekt.

Hast du es denn schon Probiert, da du schreibst:
Zitat:

Zitat von Alex_ITA01
Klingt irgendwie komisch aber ich glaube, wenn ich das nicht mache, dauert es ewig, eh die Anwendung startet...

Thorben

Alex_ITA01 28. Nov 2005 16:16

Re: viele Images zur Laufzeit laden und in Liste speichern
 
Das Problem ist aber, dass es zur Laufzeit so "ruckelt" bzw. lahmt. Also im OnDestroy habe ich das .Free drinne. Diese Images enthalten noch zwei Timer. Könnte das das Problem sein?

MFG Alex


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:30 Uhr.

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