AGB  ·  Datenschutz  ·  Impressum  







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

self.free

Ein Thema von user0 · begonnen am 28. Okt 2005 · letzter Beitrag vom 31. Okt 2005
Antwort Antwort
Seite 1 von 3  1 23      
user0

Registriert seit: 28. Okt 2005
25 Beiträge
 
Delphi 7 Personal
 
#1

self.free

  Alt 28. Okt 2005, 15:30
Hallo!

Ich möchte ein Objekt sich selbst zerstöhren lassen:

Delphi-Quellcode:
procedure TSpielstein.Rausschmeissen();
begin
  // Irgendwelcher Code...
  self.Free;
  self := nil;
end;
Leider kommt dann der Fehler "Ungültige Zeigeroperation!".
Was ist der Fehler?
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: self.free

  Alt 28. Okt 2005, 15:39
Dazu gibt es doch den Deconstructor, oder?

Grüße
Faux

PS: Zerstören schreibt man ohne h
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: self.free

  Alt 28. Okt 2005, 15:41
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
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#4

Re: self.free

  Alt 28. Okt 2005, 15:43
Zitat von RavenIV:
das geht nicht, Objekte sind keine Selbstmörder.
Nun, da muss ich dich enttäuschen Ich weiß nicht mehr genau wie ichs damals geschafft hab, aber ich habe ein Objekt sich selbst zerstören lassen ohne Fehler zu produzieren. Ich such mal den Code..
  Mit Zitat antworten Zitat
user0

Registriert seit: 28. Okt 2005
25 Beiträge
 
Delphi 7 Personal
 
#5

Re: self.free

  Alt 28. Okt 2005, 15:48
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.
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#6

Re: self.free

  Alt 28. Okt 2005, 15:55
Zitat von user0:
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.
eigentlich ist es ja auch so gedacht, dass der, der ein Objekt erzeugt, es wieder zerstören soll.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#7

Re: self.free

  Alt 28. Okt 2005, 16:02
Zitat von Dax:
Zitat von RavenIV:
das geht nicht, Objekte sind keine Selbstmörder.
Nun, da muss ich dich enttäuschen Ich weiß nicht mehr genau wie ichs damals geschafft hab, aber ich habe ein Objekt sich selbst zerstören lassen ohne Fehler zu produzieren. Ich such mal den Code..
Self.Free ist kein Problem, allerdings kannst Du die "imaginäre" Referenz "Self" nicht auf nil setzen. Self ist immer nur ein übergebener const-Parameter, der automatisch übermittelt wird.

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#8

Re: self.free

  Alt 28. Okt 2005, 16:02
Na ja, man kann sich auch selbst zerstören: FreeInstance(). Nur selbst begraben (Self := nil) ist unmöglich..

Wie sakura schon gesagt hat
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: self.free

  Alt 28. Okt 2005, 16:05
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
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
user0

Registriert seit: 28. Okt 2005
25 Beiträge
 
Delphi 7 Personal
 
#10

Re: self.free

  Alt 28. Okt 2005, 16:14
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.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 11:54 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