AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Code strukturieren! Wie macht man es richtig ..
Thema durchsuchen
Ansicht
Themen-Optionen

Code strukturieren! Wie macht man es richtig ..

Ein Thema von EWeiss · begonnen am 10. Okt 2008 · letzter Beitrag vom 16. Okt 2008
Antwort Antwort
Seite 2 von 6     12 34     Letzte »    
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.919 Beiträge
 
Delphi 10.4 Sydney
 
#11

Re: Code strukturieren! Wie macht man es richtig ..

  Alt 10. Okt 2008, 09:05
Verifizieren kann man sie und man könnte ein Event auslösen - auch oft ein guter Grund wenigstens für Setter.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#12

Re: Code strukturieren! Wie macht man es richtig ..

  Alt 10. Okt 2008, 09:23
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
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#13

Re: Code strukturieren! Wie macht man es richtig ..

  Alt 10. Okt 2008, 09:31
Bei einer Property hast Du mehrere Möglichkeiten:
Delphi-Quellcode:
private
  FBlubb: TBlubb;
...
public
  property Blubb: TBlubb read FBlubb write FBlubb;
Die einfachste: indirekter Zugriff auf das private Feld FBlubb sowohl lesend als auch schreibend.

Delphi-Quellcode:
private
  FBlubb: TBlubb;
  procedure SetBlubb(const Value: TBlubb);
...
public
  property Blubb: TBlubb read FBlubb write SetBlubb;
Lesender Zugriff immer noch indirekt, schreibender über einen Setter. Im Setter kann man Gültigkeitsprüfungen vornehmen und entsprechend reagieren.

Delphi-Quellcode:
private
  FBlubb: TBlubb;
  function GetBlubb: TBlubb;
  procedure SetBlubb(const Value: TBlubb);
...
public
  property Blubb: TBlubb read GetBlubb write SetBlubb;
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.

[edit] Nachtrag: durch Weglassen von write bzw. read kannst Du eine Property zusätzlich noch als Read-/Write-Only definieren [/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.919 Beiträge
 
Delphi 10.4 Sydney
 
#14

Re: Code strukturieren! Wie macht man es richtig ..

  Alt 10. Okt 2008, 09:38
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.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#15

Re: Code strukturieren! Wie macht man es richtig ..

  Alt 10. Okt 2008, 09:41
OK, das Argument kann ich gelten lassen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.919 Beiträge
 
Delphi 10.4 Sydney
 
#16

Re: Code strukturieren! Wie macht man es richtig ..

  Alt 10. Okt 2008, 09:43
Zitat von DeddyH:
OK, das Argument kann ich gelten lassen.

Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#17

Re: Code strukturieren! Wie macht man es richtig ..

  Alt 10. Okt 2008, 09:44
Du bist sooo gut zu mir
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#18

Re: Code strukturieren! Wie macht man es richtig ..

  Alt 10. Okt 2008, 10:45
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
  Mit Zitat antworten Zitat
Benutzerbild von Andreas H.
Andreas H.

Registriert seit: 3. Mär 2006
Ort: Schopfloch
163 Beiträge
 
Delphi 2006 Professional
 
#19

Re: Code strukturieren! Wie macht man es richtig ..

  Alt 10. Okt 2008, 11:55
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 )
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#20

Re: Code strukturieren! Wie macht man es richtig ..

  Alt 10. Okt 2008, 23:11
Warum funktioniert das nicht?
Was ist da Falsch

 property AeroEmulate[FGetAeroEmulate, FSetAeroEmulate: Integer]: Integer read FGetAeroEmulate write FSetAeroEmulate; Also die Funktion als property
Delphi-Quellcode:
function TSkinConfig.zAEROEMULATE(nMode, RW : Integer): Integer;
begin
   if RW <> 0 then
    WasMode := nMode;

   Result := WasMode;

end;
gruss Emil
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 6     12 34     Letzte »    


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 15:51 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