![]() |
Re: "Unsterbliche" Klassen
Die Praxis? Read-Only-Property einer Klasse. Anders gehts _nicht_. ;)
|
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 ^^ |
Re: "Unsterbliche" Klassen
Erm, du verstehst das falsch.
Delphi-Quellcode:
Oder so in der Art. Jedenfalls so, das der Zugriff auf den Pointer nie schreibend sein darf.
type TForm1 = class(TForm)
.. private fKlasse: TMeineUnsterblicheKlasse; public property UnsterblicheKlasse: TMeineUnsterblicheKlasse read fKlasse; end; |
Re: "Unsterbliche" Klassen
Zitat:
Delphi-Quellcode:
Teste mal TObject(Klasse).FreeInstance;
|
Re: "Unsterbliche" Klassen
Zitat:
|
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. |
Re: "Unsterbliche" Klassen
Zitat:
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: |
Re: "Unsterbliche" Klassen
Zitat:
Dann kann ich selbst ausprobieren, ob TObject(Klasse).Free; funktioniert. |
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. |
Re: "Unsterbliche" Klassen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:03 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