ERLEDIGT
NEIN
NEIN
ANTWORTEN
8
8
ZUGRIFFE
4087
4087
EMPFEHLEN
-
Hallo!
Ich möchte eine Art Animation machen. Soll heißen: Man klickt auf ein Bild, und es wird ein anders geladen.
Hab mir dazu eine TImage Komponente genommen.
Außerdem eine TImageList, in der ich die beiden Bilder habe.
Wenn die TImage Komponente noch kein Bild enthält, kann ich das aus der TImageList laden.
Wenn aber die TImage Komponente schon ein Bild hat, geht dies nicht mehr.
Frage: Wie bekomme ich das Bild wieder aus der TImageKomponente
Gruß
Christian
-
Wie das geht, hängt davon ab, wie deine Aufgabenstellung ist. Die Lösung auf deine Frage findet sich, wie das ja fast immer so ist, in der Delphi-Hilfe.
-
13.06.05 22:35 #3encom Tutorials.de Gastzugang
Hallo, löschen kannst du das Bild aus der Timage so
image1.Picture := nil
danach kannst du ein neues reinladen.
-
Das löscht nichts, das setzt nur den Zeiger auf 0 und die Referenz auf den Speicher ist futsch. Das ist eigentlich etwas, was man immer vermeiden will!Code :
1
image1.Picture := nil
Zum korrekten Freigeben eines Objektes sollte man in Delphi IMMER die Free-Methode verwenden.
-GawaynGeändert von Gawayn (13.06.05 um 23:22 Uhr)
-
14.06.05 00:34 #5encom Tutorials.de Gastzugang
ja so wie ich das mitbekommen habe will er eben nicht das Objet sondern das Bild aus der TImage löschen. Also wenn du ne bessere Idee hast dann lass sie uns wissen.
Es ist nicht sonderlich hilfreich zu sagen man soll in die Hilfe schauen wenn man nicht weis wonach man zu suchen hat.
-
Aber das Bild belegt doch Speicher! Wenn man den Zeiger einfach auf 0 setzt, kann dieser Speicher nicht mehr freigegeben werden. Wenn ich das Bild entfernen will, ohne das Objekt freizugeben, könnte ich z.B. seine Dimensionen auf je 0 setzen. Damit wäre aller Bildspeicher freigegeben, das Objekt (also das TPicture) jedoch wäre noch da.ja so wie ich das mitbekommen habe will er eben nicht das Objet sondern das Bild aus der TImage löschen.
Außerdem: Es geht hier um ein TImage. Wenn ich das TPicture freigebe, ist das Bild weg, das TImage jedoch noch da.
Natürlich weiß man, wonach man zu suchen hat, nämlich nach der Klasse, um die es geht. Wenn man ein Problem mit TPicture hat, dann sucht man nach TPicture, wenn man ein Problem mit TImageList hat, dann sucht man danach. Und folgt den Links. Das ist elementar.Es ist nicht sonderlich hilfreich zu sagen man soll in die Hilfe schauen wenn man nicht weis wonach man zu suchen hat.
-GawaynGeändert von Gawayn (14.06.05 um 09:57 Uhr)
-
26.06.05 20:43 #7Narrator Tutorials.de Gastzugang
Ist doch egal wenn man den Speicher nicht freigibt. Er will das Bild ja vlt auch nochmal verwenden
Und wenn er es dann versuchen würde(wenn es freigegeben ist), dann gibts nen hübschen Zugriffsfehler, und keiner weiß warum....
Es ist ja noch in der ImageList, also is gar nix futsch.
Davon mal abgesehen, gibt Delphi doch eh allen Speicher beim beendebn des Programmes wieder frei.
-
Also, ich glaube, hier herrscht grade ein wenig Konfusion.Ist doch egal wenn man den Speicher nicht freigibt. Er will das Bild ja vlt auch nochmal verwenden Und wenn er es dann versuchen würde(wenn es freigegeben ist), dann gibts nen hübschen Zugriffsfehler, und keiner weiß warum....
Es ist ja noch in der ImageList, also is gar nix futsch.
Tja, das macht Delphi aber nicht deswegen, damit man den Speicher nicht mehr freigeben braucht, sondern damit die vom Programmierer *vergessenen* Objekte auch noch ihren Destruktor-Aufruf kriegen. Es handelt sich dabei um eine Präventionsmaßnahme. Wenn du so programmierst, wie du's hier vorschlägst, kannst du ausschließlich für deine eigenen Belange programmieren, im Team wird das nix.Davon mal abgesehen, gibt Delphi doch eh allen Speicher beim beendebn des Programmes wieder frei.
-Gawayn
-
26.06.05 22:28 #9Narrator Tutorials.de Gastzugang
Wird im Team nur was, wenn jeder davon weiß

Also ist es schneller die Destruktoren nicht selbst aufzurufen. Die werdn eh nochma aufgerufen :P
mein ich abr nur als scherz, mit dem nicht aufrufen. sollte man nat machen.
will nur dass die leute nicht gleich angst kriegen, wenn sies mal vergessen :P
Ähnliche Themen
-
Prüfen ob Link-Bild vorhanden ist, wenn nicht Bild auf Server löschen?
Von ilmer im Forum PHPAntworten: 13Letzter Beitrag: 23.01.09, 00:14 -
Dargestellten Bild auf (AWT) Button wieder löschen
Von dj-md im Forum JavaAntworten: 5Letzter Beitrag: 16.10.07, 11:02 -
$_POST wieder löschen
Von Kona im Forum PHPAntworten: 18Letzter Beitrag: 21.08.06, 08:27 -
Temporären Datein wieder löschen
Von fabilazar im Forum PHPAntworten: 2Letzter Beitrag: 23.06.05, 19:05 -
vorbelegten Feldern wieder löschen
Von CHT im Forum ASPAntworten: 1Letzter Beitrag: 04.02.04, 12:45





Zitieren
Login





