AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Überprüfen ob ein Objekt existiert aber wie?
Thema durchsuchen
Ansicht
Themen-Optionen

Überprüfen ob ein Objekt existiert aber wie?

Ein Thema von Schuster · begonnen am 3. Jan 2005 · letzter Beitrag vom 27. Dez 2020
Antwort Antwort
Seite 1 von 5  1 23     Letzte »    
Benutzerbild von Schuster
Schuster

Registriert seit: 21. Okt 2004
Ort: Wien
176 Beiträge
 
Delphi XE7 Architect
 
#1

Überprüfen ob ein Objekt existiert aber wie?

  Alt 3. Jan 2005, 15:10
Wie kann ich feststellen ob ein Bestimmtes Button oder TPanel existiert??

Ich erstelle die Komponenten zur Laufzeit.

Mein Problem ist das ich ein Panel.hide machen will --> aber wenn noch nicht erstellt --> Fehlermeldung
Markus Schuster
__________________
Markus
http://members.chello.at/delphi-developer
  Mit Zitat antworten Zitat
Benutzerbild von Aenogym
Aenogym

Registriert seit: 7. Mär 2004
Ort: Schwerin
1.089 Beiträge
 
Delphi 7 Enterprise
 
#2

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

  Alt 3. Jan 2005, 15:11
hi,

Delphi-Quellcode:
if assigned(myButton) then
  //existiert
else
  //existiert nicht
Aenogym
Steffen Rieke
Was nicht buzzt, wird buzzend gemacht!
http://blog.base-records.de
http://www.base-records.de
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#3

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

  Alt 3. Jan 2005, 15:12
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.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#4

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

  Alt 3. Jan 2005, 15:18
Moin Dax,

Zitat von Dax:
Sollte bei dem Vergelich true raus kommen, exisitert das Objekt.
vorsicht.
Wenn das Objekt mit

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.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Sprint
Sprint

Registriert seit: 18. Aug 2004
Ort: Edewecht
712 Beiträge
 
Delphi 5 Professional
 
#5

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

  Alt 3. Jan 2005, 15:30
Zitat von Dax:
Objekte sind generell Pointer.

Du sprichst von einer Variable die eine Objektreferenz beinhaltet.

Zitat:
Deshalb ist ein nicht erstelltes Objekt immer nil

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.


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;
Ciao, Sprint.

"I don't know what I am doing, but I am sure I am having fun!"
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#6

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

  Alt 3. Jan 2005, 15:38
Vergesst, was ich gesagt habe
  Mit Zitat antworten Zitat
Benutzerbild von Aenogym
Aenogym

Registriert seit: 7. Mär 2004
Ort: Schwerin
1.089 Beiträge
 
Delphi 7 Enterprise
 
#7

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

  Alt 3. Jan 2005, 16:12
oha, okay. dann muss ich micha uch entschuldigen

Aenogym
Steffen Rieke
Was nicht buzzt, wird buzzend gemacht!
http://blog.base-records.de
http://www.base-records.de
  Mit Zitat antworten Zitat
choose

Registriert seit: 2. Nov 2003
Ort: Bei Kiel, SH
729 Beiträge
 
Delphi 2006 Architect
 
#8

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

  Alt 3. Jan 2005, 16:47
Vielleicht können die Beiträge im Thread IsObject/IsClass dem Fortkommen dieser Diskussion dienen.
gruß, choose
  Mit Zitat antworten Zitat
Benutzerbild von Boombuler
Boombuler

Registriert seit: 14. Mär 2003
Ort: Osnabrück
244 Beiträge
 
Delphi 2009 Professional
 
#9

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

  Alt 4. Jan 2005, 09:11
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
  Mit Zitat antworten Zitat
WIng2005

Registriert seit: 20. Mär 2006
Ort: Thüringen
388 Beiträge
 
Delphi XE Starter
 
#10

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

  Alt 8. Jun 2013, 09:50
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!!
MFG
Steffen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 5  1 23     Letzte »    


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 18:42 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