Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Properties read und write (https://www.delphipraxis.net/207895-properties-read-und-write.html)

Amateurprofi 12. Mai 2021 22:39

Properties read und write
 
Ich sehe oft Deklarationen von Properties wie
Delphi-Quellcode:
property OnMouseDown: TMouseEvent read FOnMouseDown write FOnMouseDown;
also Read und Write greifen auf das selbe Feld zu.

Warum gibt es für solche Fälle kein ReadWrite?
Das ersparte Schreibarbeit und wäre m.E. auch leichter lesbar.

himitsu 12. Mai 2021 22:57

AW: Properties read und write
 
Du ersparst dir die Schreibarbeit, indem du direkt auf die Variable gehst?

Sowas macht man niemals. :!:


Zugriff besser immer nur via Property und Methoden.
Ein Vorteil ist auch, dass man hier Problemlos irgendwann einen Getter/Setter nachrüsten kann, wenn man es braucht, ohne eventuell bei den aufrufenden Stellen was ändern zu müssen,
da nach außen sich nichts ändert. (und das ist bei guten Interfaces immer so)


Nee, das ist bei der Syntax nunmal so nicht vorgesehn, aber wenn es ums Sparen geht, dann sieh dir mal die Codevorlagen an ;)

Strg+J (Code template completion) und ja, es ist total schwachsinnig, dass die Templates und Live-Templates nicht (auch) im Strg+Leertaste (Code-Completion) drin sind. :wall:

prop
propf
propgs
propro
proprof

Strg+J + Wort + Enter + Tab + Eingabe + Tab ....
bzw. das Wort schreiben und dann direkt Strg+J + Tab + Eingabe + Tab ....

Amateurprofi 12. Mai 2021 23:06

AW: Properties read und write
 
Zitat:

Zitat von himitsu (Beitrag 1489356)
Du ersparst dir die Schreibarbeit, indem du direkt auf die Variable gehst?

Sowas macht man niemals. :!:


Zugriff besser immer nur via Property und Methoden.
Ein Vorteil ist auch, dass man hier Problemlos irgendwann einen Getter/Setter nachrüsten kann, wenn man es braucht, ohne eventuell bei den aufrufenden Stellen was ändern zu müssen,
da nach außen sich nichts ändert. (und das ist bei guten Interfaces immer so)

Entweder ich habe mich falsch ausgedrückt, oder du hast es anders verstanden, als ich es meinte.
Was ich meinte ist, warum es für Properties bei denen Read und Write auf das selbe Feld zugreifen, keine Option "ReadWrite" gibt,
also z.B.
Delphi-Quellcode:
property OnMouseDown: TMouseEvent readwrite FOnMouseDown

himitsu 12. Mai 2021 23:07

AW: Properties read und write
 
Ja, erst falsch verstanden und dann noch schnell etwas meinen Post geändert. :oops:

Ach ja, wenn man so ein Property erstellt, dann wird (falls noch fehlt) auch im Private die zugehörige Variable (Feld) erstellt.

KodeZwerg 12. Mai 2021 23:09

AW: Properties read und write
 
Wie würdest du denn eine "multi property" umsetzen?
read gibt was, write setzt was.
Ich glaube nicht das es technisch möglich ist.

Uwe Raabe 12. Mai 2021 23:16

AW: Properties read und write
 
Zitat:

Zitat von Amateurprofi (Beitrag 1489358)
Was ich meinte ist, warum es für Properties bei denen Read und Write auf das selbe Feld zugreifen, keine Option "ReadWrite" gibt,
also z.B.
Delphi-Quellcode:
property OnMouseDown: TMouseEvent readwrite FOnMouseDown

Vermutlich weil der Designer dieses neuen Sprachkonstrukts nicht neben den Keywords read und write noch ein weiteres einführen wollte. Ein readwrite könnte eh nur mit einem Feld der Klasse arbeiten - das lohnt den Aufwand nicht.

Und überhaupt, wer schreibt denn den Property-Zugriff noch mit der Hand 8-)

Amateurprofi 13. Mai 2021 00:07

AW: Properties read und write
 
@himitsu:
Danke für den Hinweis mit den Templates.
Werde ich mir mal anschauen.

Amateurprofi 13. Mai 2021 00:16

AW: Properties read und write
 
Zitat:

Zitat von KodeZwerg (Beitrag 1489360)
Wie würdest du denn eine "multi property" umsetzen?
read gibt was, write setzt was.
Ich glaube nicht das es technisch möglich ist.

Ich wei0 nicht einmal, wie ich ein Read umsetzen sollte und für Write gilt das Gleiche.
Analog würde das für ein potentielles ReadWrite gelten.
Ich bin nur ein tumber User und kein Compilerbauer.
Ein Read kann umgesetzt werden.
Ein Write ebenfalls.
Warum sollte man dann eine Kombination aus beiden nicht umsetzen können?

Amateurprofi 13. Mai 2021 00:18

AW: Properties read und write
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1489361)
Und überhaupt, wer schreibt denn den Property-Zugriff noch mit der Hand 8-)

Ich zum Beispiel.

KodeZwerg 13. Mai 2021 02:31

AW: Properties read und write
 
Zitat:

Zitat von Amateurprofi (Beitrag 1489364)
Zitat:

Zitat von Uwe Raabe (Beitrag 1489361)
Und überhaupt, wer schreibt denn den Property-Zugriff noch mit der Hand 8-)

Ich zum Beispiel.

Ich auch, mit den Füßen bin ich nicht so gut 8-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:29 Uhr.
Seite 1 von 2  1 2      

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