AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Prüfen, ob Komponente vorhanden

Ein Thema von cltom · begonnen am 18. Jun 2008 · letzter Beitrag vom 18. Jun 2008
Antwort Antwort
cltom

Registriert seit: 22. Sep 2005
221 Beiträge
 
Delphi 12 Athens
 
#1

Prüfen, ob Komponente vorhanden

  Alt 18. Jun 2008, 16:05
Hallo DP,

eine bestimmt oftmals gelöste Frage, ich habe auf die Schnelle nichts gefunden, einer von Euch hat das aber vermutlich in 3 sekunden.

Wie kann ich feststellen, ob eine Komponente (die ich zur Laufzeit erzeugt habe), bereits existiert? Ich könnte vielleicht Try - FindComponent machen, das erscheint mir aber wenig elegant.

dank und gruß
tom
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#2

Re: Prüfen, ob Komponente vorhanden

  Alt 18. Jun 2008, 16:15
Ähm, wenn du eine Komponente zur Laufzeit erzeugst, solltest du eigentlich selbst sehr gut wissen ob sie nun existiert oder nicht
  Mit Zitat antworten Zitat
cltom

Registriert seit: 22. Sep 2005
221 Beiträge
 
Delphi 12 Athens
 
#3

Re: Prüfen, ob Komponente vorhanden

  Alt 18. Jun 2008, 16:33
Zitat von Meflin:
Ähm, wenn du eine Komponente zur Laufzeit erzeugst, solltest du eigentlich selbst sehr gut wissen ob sie nun existiert oder nicht
Guter Einwand. Ich könnte mir merken, welche Komponenten ich erzeugt hatte.

Hintegerund dazu: es wird eine Bibliothek von Images erstellt. Es werden eine Reihe von Bildern eingelesen, für jedes Bild ein image erzeugt und das Image erhält den Dateinamen als Komponentennamen. Im Grunde würde es also wohl tatsächlich genügen, die Liste von Dateinamen aufzuheben, nachdem ich sie erzeugt habe.

Es hat sich ohnehin gelöst, weil offenbar ein Free auf eine nicht existierende Komponente auch keinen Fehler erzeugt ...
  Mit Zitat antworten Zitat
Balu der Bär
(Gast)

n/a Beiträge
 
#4

Re: Prüfen, ob Komponente vorhanden

  Alt 18. Jun 2008, 16:35
Ich hatte zwar seit Jahren kein Delphi mehr offen, aber sollte sowas nicht gehen?

if(Komponente <> nil) then ShowMEssage('vorhanden');
  Mit Zitat antworten Zitat
dominikkv

Registriert seit: 30. Sep 2006
Ort: Gundelfingen
1.109 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Prüfen, ob Komponente vorhanden

  Alt 18. Jun 2008, 17:34
Du kannst mit
Delphi-Quellcode:
if Kompo <> nil then // oder besser mit:
if Assigned(Kopo) then
schauen ob dieser Zeiger auf eine Komponente zeigt. Achtung: es können auch mehrere Zeiger auf diese zeigen (oder sogar auch garkeiner).
Das setzt aber voraus das du beim freigeben des Objekts die Zeiger auch auf NIL setzten musst! Anstatt also Kompo.Free; aufzurufen musst du jetzt FreeAndNil(Kompo); schreiben.

edit:
Zitat von cltom:
Es hat sich ohnehin gelöst, weil offenbar ein Free auf eine nicht existierende Komponente auch keinen Fehler erzeugt ...
.Free; überprüft zuerst ob das Objekt existiert, wenn ja wird .Destroy aufgerufen.
Dominik
Wer anderen eine Grube gräbt, hat ein Gruben-Grab-Gerät!
  Mit Zitat antworten Zitat
Antwort Antwort


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 04:05 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