![]() |
Prüfen ob ein TImage existiert ?
Hey Leute.
Wie überprüft man ob ein TImage existiert ? Bei mir wird während das Programm läuft so ein TImage erstellt:
Delphi-Quellcode:
Der Timer erstellt erst in einer IF-Schleife das Image. Doch
Bild:=TImage.create(nil);
der Timer soll auch wenn es dieses Image schon existiert ihm eine Positionen zuweisen. Etwa so: (Image1 existiert schon vorher ;D)
Delphi-Quellcode:
Wie mache ich das unter Delphi7 ?
Bild.Top:=Image1.Top;
Bild.Left:=Image1.Left |
AW: Prüfen ob ein TImage existiert ?
![]() |
AW: Prüfen ob ein TImage existiert ?
Delphi-Quellcode:
Vllt erkennt ihr ja, dass es Snake werden soll :D
procedure TForm1.Timer1Timer(Sender: TObject);
var r:Trect; begin Bild2.Top:=Image1.Top+(Image1.tag * 16); // Soll nur ausgeführt werden, wenn es das Image gibt, da sonst ein Fehler kommt. Bild2.Left:=Image1.Left+(Image1.tag * 16); // Soll nur ausgeführt werden, wenn es das Image gibt, da sonst ein Fehler kommt. if InterSectRect(r,image1.BoundsRect,Bild.BoundsRect) then Begin Image1.tag:=Image1.Tag+1; Bild.Left:=Random(Form1.Width-Bild.Left); Bild.Top:=Random(Form1.Height-Bild.Top); Bild2:=TImage.create(nil); bild2.parent := self; Bild2.picture.LoadFromFile('Spiel.jpg'); Bild2.autosize:=true; Bild2.Visible:=true; end; end; |
AW: Prüfen ob ein TImage existiert ?
Was ist denn Bild2, eine globale Variable?
|
AW: Prüfen ob ein TImage existiert ?
ja, es ist aber in den { Private-Deklarationen } :D
|
AW: Prüfen ob ein TImage existiert ?
OK, dann ist es mit nil initialisiert, also sollte das hier funktionieren.
Delphi-Quellcode:
if not Assigned(Bild2) then
Bild2 := TImage.create(nil); |
AW: Prüfen ob ein TImage existiert ?
€dit: Gelöst
Danke für deine Hilfe :D |
AW: Prüfen ob ein TImage existiert ?
Und nicht vergessen, das TImage (hier Bild2) nach dem Benutzen wieder zu zerstören, spätestens im TForm.FormClose oder TForm.FormDestroy, sonst gibt es Speicherlecks.
MfG Dalai |
AW: Prüfen ob ein TImage existiert ?
Es würde schon genügen, statt nil einen existierenden Owner anzugeben, dann geschieht die Freigabe automatisch.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:22 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