Delphi-PRAXiS
Seite 1 von 5  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Überprüfen ob ein Objekt existiert aber wie? (https://www.delphipraxis.net/37259-ueberpruefen-ob-ein-objekt-existiert-aber-wie.html)

Schuster 3. Jan 2005 14:10


Überprüfen ob ein Objekt existiert aber wie?
 
Wie kann ich feststellen ob ein Bestimmtes Button oder TPanel existiert?? :gruebel:

Ich erstelle die Komponenten zur Laufzeit.

Mein Problem ist das ich ein Panel.hide machen will --> aber wenn noch nicht erstellt --> Fehlermeldung

Aenogym 3. Jan 2005 14:11

Re: Überprüfen ob ein Objekt existiert aber wie?
 
hi,

Delphi-Quellcode:
if assigned(myButton) then
  //existiert
else
  //existiert nicht
Aenogym

Dax 3. Jan 2005 14:12

Re: Überprüfen ob ein Objekt existiert aber wie?
 
Objekte sind generell Pointer. Deshalb ist ein nicht erstelltes Objekt immer nil ;)
Einfach mit if Objekt <> nil oder Delphi-Referenz durchsuchenAssigned checken (eigentlich das selbe). Sollte bei dem Vergelich true raus kommen, exisitert das Objekt.

Christian Seehase 3. Jan 2005 14:18

Re: Überprüfen ob ein Objekt existiert aber wie?
 
Moin Dax,

Zitat:

Zitat von Dax
Sollte bei dem Vergelich true raus kommen, exisitert das Objekt.

vorsicht.
Wenn das Objekt mit

Delphi-Quellcode:
Objekt.Free;
freigegeben wird, oder lokal deklariert wird, stimmt die Aussage nicht, da dann der Pointer immer noch einen Wert enthält, aber nicht mehr (zumindest zwingend) auf das Objekt verweist.

Sprint 3. Jan 2005 14:30

Re: Überprüfen ob ein Objekt existiert aber wie?
 
Zitat:

Zitat von Dax
Objekte sind generell Pointer.

:shock:
Du sprichst von einer Variable die eine Objektreferenz beinhaltet.

Zitat:

Deshalb ist ein nicht erstelltes Objekt immer nil
:shock:
Mit Assigned und/oder nil kannst du nur eine Variable prüfen, ob sie eine Objektreferenz beinhaltet oder halt nicht.

Zitat:

Sollte bei dem Vergelich true raus kommen, exisitert das Objekt.
:shock:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  List: TStringList;
begin

  if Assigned(List) then
  begin
    List.Add('So kann man nicht prüfen, ob ein Objekt existiert.');
    List.Free;
  end;

end;

Dax 3. Jan 2005 14:38

Re: Überprüfen ob ein Objekt existiert aber wie?
 
Vergesst, was ich gesagt habe :roll:

Aenogym 3. Jan 2005 15:12

Re: Überprüfen ob ein Objekt existiert aber wie?
 
oha, okay. dann muss ich micha uch entschuldigen :roll:

Aenogym

choose 3. Jan 2005 15:47

Re: Überprüfen ob ein Objekt existiert aber wie?
 
Vielleicht können die Beiträge im Thread IsObject/IsClass dem Fortkommen dieser Diskussion dienen.

Boombuler 4. Jan 2005 08:11

Re: Überprüfen ob ein Objekt existiert aber wie?
 
Is zwar nich der beste Style aber funktionieren müsste das auch so:
Delphi-Quellcode:
try
  Panel.hide
except end;
denn das sollte in diesem Fall schon ausreichen oder?

Greetz
Boombuler

WIng2005 8. Jun 2013 08:50

AW: Überprüfen ob ein Objekt existiert aber wie?
 
Hallo Gemeinde,

ich greife dieses Thema nochmal auf, da ich irgendwie hier nicht weiterkomme:
Ich möchte eine Art Toggle erstellen, der per Button ein Objekt erzeugt oder, wenn es schon vorhanden ist freigibt. Eigentlich ging ich davon aus, dass ich dies mit:

Delphi-Quellcode:
var mPlayer:TMPlayer;
begin
if not assigned(mPlayer) then
  mPlayer:=TMPlayer.create
else freeandnil(mplayer);
end;
erreichen könnte. Jedoch bekomme ich schon beim 1. Aufruf im Else-Zweig eine Zugriffsverletzung. Dabei ist mir nur nicht ganz klar, warum Assigned schon beim 1. Prüfen das Objekt als erzeugt erkennt (?). Wo liegt hier mein Denkfehler?

Danke für eure Hilfe!!


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:59 Uhr.
Seite 1 von 5  1 23     Letzte »    

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