AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Property read wird autom. erzeugt

Ein Thema von Jumpy · begonnen am 8. Nov 2013 · letzter Beitrag vom 8. Nov 2013
Antwort Antwort
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.733 Beiträge
 
Delphi 6 Enterprise
 
#1

Property read wird autom. erzeugt

  Alt 8. Nov 2013, 13:55
Hallo,

in diesmal D2010 habe ich eine "write only" property:

property SC:TSC write fSC;

Wann immer ich eine neue Property oder Funktion definiere und dann mit Strg+Shift+C alles anlegen lassen will schreibt er mir noch ein read in die Property und dass zudem in falscher Weise hinter das write:

property SC:TSC write fSC read fSC;

Und beim nächsten kompilieren gibts deswegen mecker.

Woher kommt das? Darf man keine "write only" property haben?
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: Property read wird autom. erzeugt

  Alt 8. Nov 2013, 14:08
Das scheint eher ein Bug in der Klassenvervollständigung zu sein. Ich habe das gerade in meinem XE ausprobiert, da passiert das nicht, kann mich aber erinnern, dass ich dieses Verhalten auch schon einmal festgestellt habe. Ob der Fehler nun in XE behoben wurde oder ob es vielleicht an den Erweiterungen (GExperts, DDevExtensions, IDE FixPack 5.4) liegt, weiß ich allerdings nicht.
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
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.733 Beiträge
 
Delphi 6 Enterprise
 
#3

AW: Property read wird autom. erzeugt

  Alt 8. Nov 2013, 14:22
In D6 hab ich das Problem auch nie gehabt (oder ich hatte nie WriteOnly-Proeprtys).
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.170 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Property read wird autom. erzeugt

  Alt 8. Nov 2013, 14:24
Für einen Wert den man nur setzen kann halte ich ein Property für den falschen weg.
Was spricht gegen eine Methode?

Property würde ich nur bei (write/)read Werte einsetzen.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: Property read wird autom. erzeugt

  Alt 8. Nov 2013, 14:28
Das hat aber doch mit dem Verhalten der Klassenvervollständigung nichts zu tun. Wenn ich der Meinung bin, ich brauche eine WriteOnly-Property, dann soll diese bitteschön nicht verschlimmbessert werden.
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
Furtbichler
(Gast)

n/a Beiträge
 
#6

AW: Property read wird autom. erzeugt

  Alt 8. Nov 2013, 14:29
Darf man keine "write only" property haben?
Es macht keinen Sinn bzw. ist kein guter Stil. Das die Delphi-Vervollständigung da Mist macht, steht auf einem anderen Blatt.

Wieso es kein guter Stil ist? Eine 'Variable' (eine Property ist ja nichts anderes, nur mit stringenter Get/Set-Logik) die man beschreiben kann, aber nie wieder lesen, ist keine Variable. Oder allgemein gesehen: Eine Eigenschaft ist mindestens lesbar, damit sie eine Eigenschaft ist. Beschreibbar wird sie, wenn das Verändern der Eigenschaft entweder nur unter bestimmten Fällen möglich ist (Setter-Logik), oder andere Effekte hat (Setter-Funktionalität). Mittlerweile geht man sogar dazu über, public/protected Variablen als Property zu implementieren, sodaß die Setter-Logik=null ist.

Wenn Du die 'Eigenschaft' nur verändern willst, aber nie nie nicht lesbar, dann mach daraus eine Methode, denn -wie gesagt- Du änderst keine Eigenschaft deines Objektes, sondern führst eine Aktion aus. Oder du implementierst einen backing store (privates Feld) und lässt sie halt auslesen.

@DeddyH: Das ist richtig, so ist/war das Murks.
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.733 Beiträge
 
Delphi 6 Enterprise
 
#7

AW: Property read wird autom. erzeugt

  Alt 8. Nov 2013, 14:52
Habt ja recht, war Käs. Ist schließlich Freitag

Was ich da mache ist einen Methodenzeiger setzen und man kann da eigentlich auch ruhig das read drin lassen. Aber irgendwie ware ich der Meinung ich brauch das (von aussen) nicht auslesen (innerhalb der Klasse hatte ich das so implementiert, dass ich direkt auf die Variable (if Assigned(fSC) then...) gucke) und habs weggelassen, womit dann der ganze Ärger angefangen hat.

Aber blöd von der IDE isset doch. Aber vielleicht hat die heute auch bloß Freitag...
Ralph
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.733 Beiträge
 
Delphi 6 Enterprise
 
#8

AW: Property read wird autom. erzeugt

  Alt 8. Nov 2013, 15:02
Aber wo wir gerade von schlechtem Stil bei Properties reden...

Es gibt ja viele Klassen, wo mittels einer Methode Add was hinzugefügt wird, z.B.
Stringlist.Add('SomeString') .

Ich habe aber in unserem Framework auch schon eingige Klassen gesehen (nicht gemacht), bei denen das Add eine Property mit dahinterliegender Setter-Prozedur ist, die dann was an eine Liste oder sonstwas anhängt, das sieht dann so aus:

IrgendeineKlasse.Add:='SomeString' .

Das finde ich einerseits manchmal ganz praktisch, andererseits, hab ich das Problem, wenn ich zuviel mit einer solchen Klasse gemacht habe und dann wieder einmal mit einer Stringlist arbeite, ärgere ich mich über die lästigen Klammern. Dabei ist das doch eigentlich der Standard.
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: Property read wird autom. erzeugt

  Alt 8. Nov 2013, 15:06
Also, mich würde das verwirren.
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
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.733 Beiträge
 
Delphi 6 Enterprise
 
#10

AW: Property read wird autom. erzeugt

  Alt 8. Nov 2013, 16:42
Das mein ich ja. Wenn man viel damit gearbeitet hat, dann kommt man mit dem durcheinander was man als üblichen Standard kennt. Insofern ist das schon eine schlechte Verwendung einer Poperty.
Aber in dem Fall muss ich wohl damit leben, da wenn man die betroffenen Klassen ändert, an unheimlich vielen Stellen die Verwendung der Klasse geändert werden müsste.
Ralph
  Mit Zitat antworten Zitat
Antwort Antwort


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 05:29 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