Delphi-PRAXiS
Seite 1 von 7  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi "Unsterbliche" Klassen (https://www.delphipraxis.net/58928-unsterbliche-klassen.html)

Neutral General 14. Dez 2005 17:49


"Unsterbliche" Klassen
 
Hi,

Also das hier ist keine Frage die Lebensnotwendig ist, aber da mir grad langweilig ist würde ich gerne mal wissen ob man eine Klasse irgendwie "unsterblich" machen kann habs mal so versucht aber das geht nicht so richtig^^

Delphi-Quellcode:
TUnvKlasse = class(TObject)
   public
    S: String;
    destructor Destroy; override;
  end;

var Klasse: TUnvKlasse;

destructor TUnvKlasse.Destroy;
var Seele: TUnvKlasse;
begin
   Seele := Self;
   inherited Destroy;
   Self := Seele;
   Self.S := 'Hallo';
end;
dann hab ich halt zwei Buttons:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
 Klasse := TUnvKlasse.Create;
 Klasse.S := 'Test';
 Caption := TUnvKlasse.S; // Caption wird 'Test' ... logischerweise^^
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
 Klasse.Destroy;
 Caption :=Klasse.S; // es gibt keine AV aber es steht auch nix da bzw es steht '' da
                            // wenn ich nochmal drücke gibts ne AV^^
end;
Geht das irgendwie ? :mrgreen:
Ich glaube das hier gehört schon fast in Klatsch und Tratsch^^..

Gruß
Michael

DGL-luke 14. Dez 2005 17:53

Re: "Unsterbliche" Klassen
 
durch das seele := self lenkst du nur die referenz um. wenn dann müsstest du den konstruktor einfach leer lassen...

Neutral General 14. Dez 2005 17:55

Re: "Unsterbliche" Klassen
 
Sogar ein leerer Destructor nützt nichts :D

DGL-luke 14. Dez 2005 18:01

Re: "Unsterbliche" Klassen
 
wieso? wird der speicher gleich dealloziiert? ohne das inherited destroy; wird doch nichts freigegeben... ausser das findet im free statt... kann man das überschreiben?

Neutral General 14. Dez 2005 18:04

Re: "Unsterbliche" Klassen
 
Ich rufe ja nur Destroy auf...
und mein Destructor ist leer..

Dax 14. Dez 2005 18:05

Re: "Unsterbliche" Klassen
 
Es geht: Überschreibe FreeInstance der Klasse und tue darin nichts, nicht mal inherited. Auch wenn ich den Sinn der Aktion nicht sehe... :gruebel:

Neutral General 14. Dez 2005 18:07

Re: "Unsterbliche" Klassen
 
Ok danke es klappt :D

Naja das hat kein Sinn aber da mir langweilig war wollte ich mal ne Unzerstörbare Klasse erschaffen xD :mrgreen:

jbg 14. Dez 2005 18:18

Re: "Unsterbliche" Klassen
 
Zitat:

Zitat von Neutral General
Naja das hat kein Sinn aber da mir langweilig war wollte ich mal ne Unzerstörbare Klasse erschaffen xD :mrgreen:

Na das hätte man auch einfacher haben können: Einfach nicht .Free aufrufen.

Neutral General 14. Dez 2005 18:22

Re: "Unsterbliche" Klassen
 
Ja das wäre genauso wie wenn man sagen würde: Ein Mensch ist auch unsterblich solange man ihn nicht umbringt...(oder er an altersschwäche stirbt^^)

Das Objekt muss ja immun gegen alle Angriffe sein :mrgreen: :freak:

Airblader 14. Dez 2005 19:19

Re: "Unsterbliche" Klassen
 
Per Holzhammermethode könntest du theoretisch so oder so die Klasse "kaputtieren" ;)

air


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

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