![]() |
self.free
Hallo!
Ich möchte ein Objekt sich selbst zerstöhren lassen:
Delphi-Quellcode:
Leider kommt dann der Fehler "Ungültige Zeigeroperation!".
procedure TSpielstein.Rausschmeissen();
begin // Irgendwelcher Code... self.Free; self := nil; end; Was ist der Fehler? :gruebel: |
Re: self.free
Dazu gibt es doch den Deconstructor, oder? :gruebel:
Grüße Faux PS: Zerstören schreibt man ohne h :wink: |
Re: self.free
das geht nicht, Objekte sind keine Selbstmörder.
ernsthaft: der Compiler hat recht. Ein Objekt kann sich nicht selber zerstören. Woher soll denn dann der Computer wissen, was er bei´m Destructor machen soll wenn dieser schon zerstört wurde? Das würde ja in einer endlosschleife enden... gruessle |
Re: self.free
Zitat:
|
Re: self.free
Das währe toll!
Im Notfall muss ich wohl eine Variable definieren, die beschreibt, ob das Objekt noch aktiv ist, oder nicht, so dass das Besitzerobjekt seinen Besitz zerstören kann. :mrgreen: |
Re: self.free
Zitat:
|
Re: self.free
Zitat:
...:cat:... |
Re: self.free
Na ja, man kann sich auch selbst zerstören: FreeInstance(). Nur selbst begraben (Self := nil) ist unmöglich..
Wie sakura schon gesagt hat ;) |
Re: self.free
ABer wozu denn das alles? Normalerweise zerstört man das Objekt doch mittels dem Deconstructor, oder? Derjenige der ´die Klasse erzeugt, muss sie nach dem Verwenden auch wieder zerstören. Oder?
Grüße Faux |
Re: self.free
Es ist im Moment einfach einfacher.
Es geht um Spielfiguren, die sich gegenseitig rausschmeißen. Zu FreeInstance: Wie kann man herausfinden, ob ein Pointer "ins leere" zeigt? Auf nil kann ich ja nicht setzen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:10 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