![]() |
Re: Code strukturieren! Wie macht man es richtig ..
Verifizieren kann man sie und man könnte ein Event auslösen - auch oft ein guter Grund wenigstens für Setter.
|
Re: Code strukturieren! Wie macht man es richtig ..
Also würdet ihr lieber ein property verwenden anstelle der von mit gewählten funktion.
Zumindest hätte ich mir dann einiges an code gespart und muss nicht alles doppelt deklarieren. Reicht dann diese eine property zeile oder muss ich zusätzlich noch Funktionen einbauen mit dem ich den aktuellen status von FGetCaptionFontHeight erfrage ? Nur dann hätte ich nichts gewonnen. gruss Emil |
Re: Code strukturieren! Wie macht man es richtig ..
Bei einer Property hast Du mehrere Möglichkeiten:
Delphi-Quellcode:
Die einfachste: indirekter Zugriff auf das private Feld FBlubb sowohl lesend als auch schreibend.
private
FBlubb: TBlubb; ... public property Blubb: TBlubb read FBlubb write FBlubb;
Delphi-Quellcode:
Lesender Zugriff immer noch indirekt, schreibender über einen Setter. Im Setter kann man Gültigkeitsprüfungen vornehmen und entsprechend reagieren.
private
FBlubb: TBlubb; procedure SetBlubb(const Value: TBlubb); ... public property Blubb: TBlubb read FBlubb write SetBlubb;
Delphi-Quellcode:
Lesender Zugriff über den Getter, schreibender über den Setter. Im Sinne der OOP ist dies der "amtliche" Weg (gerade in der Hinsicht auf andere Sprachen als Delphi). Ich persönlich spare mir eine Getter-Methode aus Faulheitsgründen, da sie IMO keinen echten Mehrwert bringt.
private
FBlubb: TBlubb; function GetBlubb: TBlubb; procedure SetBlubb(const Value: TBlubb); ... public property Blubb: TBlubb read GetBlubb write SetBlubb; [edit] Nachtrag: durch Weglassen von write bzw. read kannst Du eine Property zusätzlich noch als Read-/Write-Only definieren [/edit] |
Re: Code strukturieren! Wie macht man es richtig ..
Eine Getter-Methode erlaubt Dir eine sog. "Lazy-Initialization".
Angenommen, Du hast "teure" Daten im Speicher, brauchst diese aber entweder nicht sofort oder aber nicht immer. Dann kann Dir eine Getter-Methode helfen, diese Daten erst dann zu holen / zu erzeugen, wenn sie tatsächlich benötigt werden. |
Re: Code strukturieren! Wie macht man es richtig ..
OK, das Argument kann ich gelten lassen.
|
Re: Code strukturieren! Wie macht man es richtig ..
Zitat:
:mrgreen: |
Re: Code strukturieren! Wie macht man es richtig ..
Du bist sooo gut zu mir :oops: :mrgreen:
|
Re: Code strukturieren! Wie macht man es richtig ..
Danke für eure Informationen werd dann auf property umsteigen bei einigen Funktionen
Das erparrt mir einiges an Tip arbeit. Zumindest bei denen wo es nur um eine variable abspeichern/Lesen geht.. gruss Emil |
Re: Code strukturieren! Wie macht man es richtig ..
Ja,
und die IDE unterstützt Dich Dabei auch noch. Einfach die Property definieren und über Klasse vervollständigen werden Getter und Setter automatisch eingefügt. (edit: bei bds2006 jedenfalls :roll: ) |
Re: Code strukturieren! Wie macht man es richtig ..
Warum funktioniert das nicht?
Was ist da Falsch
Delphi-Quellcode:
Also die Funktion als property
property AeroEmulate[FGetAeroEmulate, FSetAeroEmulate: Integer]: Integer read FGetAeroEmulate write FSetAeroEmulate;
Delphi-Quellcode:
gruss Emil
function TSkinConfig.zAEROEMULATE(nMode, RW : Integer): Integer;
begin if RW <> 0 then WasMode := nMode; Result := WasMode; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:39 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