Delphi-PRAXiS
Seite 4 von 7   « Erste     234 56     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)

Dax 15. Dez 2005 14:02

Re: "Unsterbliche" Klassen
 
Die Praxis? Read-Only-Property einer Klasse. Anders gehts _nicht_. ;)

Neutral General 15. Dez 2005 14:05

Re: "Unsterbliche" Klassen
 
Das heißt ich muss es schaffen den Pointer meiner Klasse readonly zu machen ?
Na super.. Die Klassen haben ja nichtmal ne Eigenschaft Pointer...
Wie soll man sowas denn Readonly machen ?^^

NEIN ich glaube ich muss die komplette Klasse Readonly machen ^^

Dax 15. Dez 2005 14:09

Re: "Unsterbliche" Klassen
 
Erm, du verstehst das falsch.

Delphi-Quellcode:
type TForm1 = class(TForm)
  ..
  private
    fKlasse: TMeineUnsterblicheKlasse;
  public
   property UnsterblicheKlasse: TMeineUnsterblicheKlasse read fKlasse;
  end;
Oder so in der Art. Jedenfalls so, das der Zugriff auf den Pointer nie schreibend sein darf.

MaBuSE 15. Dez 2005 14:10

Re: "Unsterbliche" Klassen
 
Zitat:

Zitat von Neutral General
Delphi-Quellcode:
Klasse.Free;
Klasse.Destroy;
Klasse.FreeInstance;
FreeAndNil(Klasse);
TAndereKlasse(Klasse).Free

Delphi-Quellcode:
Teste mal TObject(Klasse).FreeInstance;

NicoDE 15. Dez 2005 14:12

Re: "Unsterbliche" Klassen
 
Zitat:

Zitat von Neutral General
Ich muss ja verhindern das

Delphi-Quellcode:
Klasse := nil;
seine Wirkung verliert, bzw das die Klasse schnell wieder ihren Zeiger wiederbekommt oder ihn erst gar nicht verliert..

Ähm, 'Klasse' scheint eine Referenz auf ein Objekt (Instanz einer Klasse) zu sein... das hat nichts mit deiner Klasse zu tun.

tigerman33 15. Dez 2005 14:13

Re: "Unsterbliche" Klassen
 
@Dax:
Das geht nicht. Er will ja, dass niemand eine Instanz seiner Klasse zerstören kann, also auch ohne "selbstauferlegte" Beschränkungen. Ist also quasi eine Art vollkommen sinnloser API. :mrgreen: (Das ist aber nicht negativ gemeint)

@malo:
Nein, das geht nicht. Default-Eigenschaften kann man nur für Array-Eigenschaften angeben--siehe oben.

Neutral General 15. Dez 2005 14:16

Re: "Unsterbliche" Klassen
 
Zitat:

Zitat von MaBuSE
Zitat:

Zitat von Neutral General
Delphi-Quellcode:
Klasse.Free;
Klasse.Destroy;
Klasse.FreeInstance;
FreeAndNil(Klasse);
TAndereKlasse(Klasse).Free

Delphi-Quellcode:
Teste mal TObject(Klasse).FreeInstance;

Eh was willst du mir damit sagen ?
Also meine Klasse ist immun gegen TObject(Klasse).FreeInstance...
Und das von Natur aus :mrgreen:

Aber immernoch nicht gegen Klasse := nil; -.-^^

@Tigerman(@Dax): Genau. Also die Klasse soll keine Property sein. Bzw sie muss keine sein aber trotzdem "unverwundbar" :mrgreen:

MaBuSE 15. Dez 2005 14:36

Re: "Unsterbliche" Klassen
 
Zitat:

Zitat von Neutral General
Eh was willst du mir damit sagen ?
Also meine Klasse ist immun gegen TObject(Klasse).FreeInstance...
Und das von Natur aus :mrgreen:

Kannst Du mal den Quellcode Deiner Klasse posten, ich würde das gerne mal sehen.

Dann kann ich selbst ausprobieren, ob TObject(Klasse).Free; funktioniert.

ichbins 15. Dez 2005 14:40

Re: "Unsterbliche" Klassen
 
Wie wärs wenn du den Inhalt deines Zeigers und einen Zeiger auf den Zeiger als protected-Variablen in deiner Klasse speicherst? Dann machst du eine Endlosschleife in die Klasse rein, in der du überprüfst, ob sich der Wert im Zeiger verändert hat.

Und: :=nil ist WIRKLICH kein Zerstören: Es bedeutet ja nur dass das Prog nicht mehr weiss wo im RAM die Klasse eigentlich ist. Dann könntest du die Klasse auch in einer lokalen Variable öffnen, die ist dann auch "verloren" wie bei :=nil.

MaBuSE 15. Dez 2005 14:40

Re: "Unsterbliche" Klassen
 
Zitat:

Zitat von Neutral General
Ich hab ne Idee: Ich erstelle eine "Unverwundbare" Klasse. Ich geb euch den Quellcode von nem Programm mit ner Unverwundbaren Klasse. Ihr dürft verändert was ihr wollt, aber ihr dürft keine Functionen,Proceduren oder Variabel oder so von der Klasse verändern oder hinzufügen. Wer es zuerst schafft die Klasse zu zerstören hat gewonnen :mrgreen:

(Das war ernst gemeint ;))

Also was ist?


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:03 Uhr.
Seite 4 von 7   « Erste     234 56     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