AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Prüfen ob ein TImage existiert ?

Prüfen ob ein TImage existiert ?

Ein Thema von Premaider · begonnen am 14. Mai 2012 · letzter Beitrag vom 15. Mai 2012
Antwort Antwort
Premaider

Registriert seit: 31. Mär 2012
160 Beiträge
 
#1

Prüfen ob ein TImage existiert ?

  Alt 14. Mai 2012, 18:20
Hey Leute.
Wie überprüft man ob ein TImage existiert ?
Bei mir wird während das Programm läuft so ein TImage erstellt:
Bild:=TImage.create(nil); Der Timer erstellt erst in einer IF-Schleife das Image. Doch
der Timer soll auch wenn es dieses Image schon existiert ihm eine Positionen zuweisen.
Etwa so: (Image1 existiert schon vorher ;D)
Delphi-Quellcode:
  Bild.Top:=Image1.Top;
  Bild.Left:=Image1.Left
Wie mache ich das unter Delphi7 ?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.534 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Prüfen ob ein TImage existiert ?

  Alt 14. Mai 2012, 18:22
If-Schleife. Und was für ein Timer? Zeig doch mal Code.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Premaider

Registriert seit: 31. Mär 2012
160 Beiträge
 
#3

AW: Prüfen ob ein TImage existiert ?

  Alt 14. Mai 2012, 18:27
Delphi-Quellcode:
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;
Vllt erkennt ihr ja, dass es Snake werden soll
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.534 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Prüfen ob ein TImage existiert ?

  Alt 14. Mai 2012, 18:28
Was ist denn Bild2, eine globale Variable?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Premaider

Registriert seit: 31. Mär 2012
160 Beiträge
 
#5

AW: Prüfen ob ein TImage existiert ?

  Alt 14. Mai 2012, 18:34
ja, es ist aber in den { Private-Deklarationen }
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.534 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Prüfen ob ein TImage existiert ?

  Alt 14. Mai 2012, 18:40
OK, dann ist es mit nil initialisiert, also sollte das hier funktionieren.
Delphi-Quellcode:
if not Assigned(Bild2) then
  Bild2 := TImage.create(nil);
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Premaider

Registriert seit: 31. Mär 2012
160 Beiträge
 
#7

AW: Prüfen ob ein TImage existiert ?

  Alt 14. Mai 2012, 18:51
€dit: Gelöst

Danke für deine Hilfe

Geändert von Premaider (14. Mai 2012 um 18:55 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.679 Beiträge
 
Delphi 5 Professional
 
#8

AW: Prüfen ob ein TImage existiert ?

  Alt 15. Mai 2012, 01:09
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
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.534 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Prüfen ob ein TImage existiert ?

  Alt 15. Mai 2012, 07:59
Es würde schon genügen, statt nil einen existierenden Owner anzugeben, dann geschieht die Freigabe automatisch.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:08 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