Delphi-PRAXiS

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 Klasse Instantiiert?? (https://www.delphipraxis.net/9391-klasse-instantiiert.html)

Nalincah 25. Sep 2003 14:24


Klasse Instantiiert??
 
wie kann ich abtesten ob ne klasse nicht instantiiert ist?

Delphi-Quellcode:
var myclassVar: TMyClass
begin
  if myClassVar = nil then
... das funzt net

sakura 25. Sep 2003 14:30

Re: Klasse Instantiiert??
 
Also ich mache das eigentlich immer so :gruebel: Du musst nur beim zerstören der Instanz sicherstellen, das myClassVar wieder nil ist ;-)

Delphi-Quellcode:
FreeAndNil(myClassVar);
...:cat:...

negaH 25. Sep 2003 14:39

Re: Klasse Instantiiert??
 
Das ist übrigens die einzigst sichere Methode.

Gruß Hagen

Jens Schumann 25. Sep 2003 14:41

Re: Klasse Instantiiert??
 
Hallo,
ich denke der General hat zu wenig Source geliefert.
Delphi-Quellcode:
 procedure Form1.xxx;
 var
   MyClass : TMyClass;
 begin
   If MyClass<>Nil then
     ...
 end;
geht nicht, da MyClass eine lokale Instanz ist.

hingegen
Delphi-Quellcode:
type
  TForm1 = class(TForm)
  private
    { Private-Deklarationen }
    FMyClass : TMyClass;
  public
    { Public-Deklarationen }
  end;

 procedure Form1.xxx;
 begin
   If FMyClass<>Nil then
     ...
 end;
funktioniert, da das Form beim Create alle Felder auf 0 setzt.

Nalincah 25. Sep 2003 14:42

Re: Klasse Instantiiert??
 
Ich will, bevor ich die Klasse zerstöre, erstmal überprüfen ob sie instantiiert wurde

sakura 25. Sep 2003 14:49

Re: Klasse Instantiiert??
 
Das ist ja auch korrekt - aber dann kannst Du einfach den Aufruf über FreeAndNil nutyen, der erledigt u.a. genau das ;-)

...:cat:...


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:37 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