AGB  ·  Datenschutz  ·  Impressum  







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

Ist das ein D4 Bug ?

Ein Thema von JoelH · begonnen am 28. Jul 2003 · letzter Beitrag vom 31. Jul 2003
 
tommie-lie
(Gast)

n/a Beiträge
 
#13

Re: hmm,

  Alt 29. Jul 2003, 14:26
Zitat von JoelH:
@tommie-lie
Hast du ein Problem ?
Ich hab ganz ordentlich gefragt, wenn dir das nicht passt dann antworte halt nimmer, hab ich kein Problem mit, oki's Betrag hat mir mehr geholfen als deine zusammen.
Entschuldige, ich dachte, jemand der eine Client/Server-Version von Delphi besitzt, wenigstens ein bisschen Ahnung von OOP hat und ich ihn selbst wenn er von alleine nicht drauf kommt, wenigstens zum Nachdenken anregen kann.
Dem war nicht so, also gut:


Ein Property dient dazu, Werte zu schreiben, und zwar öffentlich. Dazu bietet sich die Möglichkeit von Read- und Write-Deklarationen dazu an, auch Prozeduren, bzw Funktionen anzugeben, die zuvor den Wert aus einer Variable irgendwie behandeln. Eine Multiplikation/Division mit 1000 aus okis Beitrag wäre ein Beispiel dazu, denkbar wäre z.B. bei einem Timer das Interval-Property daß der Timer im System neu angemeldet wird, mit dem neuen Interval.
Die read-Deklaration muss eine function sein, die write-Deklaration eine procedure. Der Rückgabewert der read-Funktion wird dabei als Wert des Properties abgetragen, wenn man irgendwo im Code sowas stehen hat wie
[delphi]MyVar := MyClassInstance.MyProperty[Delphi]
Dabei wird die read-Funktion aufgerufen (ohne Parameter, da unnötig) und der Wert dieses Ergebnisses in MyVar geschrieben.
Ruft man stattdessen
[delphi]MyClassInstance.MyProperty := MyVar[Delphi]
auf, so wird natürlich die write-Prozedur aufgerufen um den Wert aus MyVar dem Property zuzuweisen. Wie soll jetzt diese Prozedur (wenn nicht direkt dem Feld der Klasse übergeben wird) wissen, welchen Wert es schreiben soll? Natürlich über den Parameter.

DIES ist der eigentliche Sinn und Zweck des ganzen. Daher geht der Compiler, der der OOP mächtig ist, davon aus, daß der vor ihm sitzende Programmierer dies auch ist, und will der Prozedur den dem Property zugewiesenen Wert als Parameter übergeben, auf daß die Prozedur schon das richtige mit diesem Wert anstelle.
Auf diese Weise verlange ich (als Benutzer deiner Klasse), daß ein Wert, den ich einem Property zuweise, in irgendeiner Art und Weise in der Klasse landet. Meinetwegen lasse ich mir noch gefallen, daß ich ihn nicht wieder auslesen kann, weil er irgendwie umgeformt wurde, aber ich will, wenn ich irgendwas mache, daß auf das, was ich gemacht habe, darauf reagiert wurde.
Was du hingegen machst, du missbrauchst ein Property dazu etwas zu tun, was eigentlich in einer public-procedure wie "Initialize" hätte stehen sollen. Ein Property ist nicht dazu da, irgendwelche Werte irgedwie zu setzen, sondern die gewünschten Werte auf den von mir angegebenen Wert zu setzen.
  Mit Zitat antworten Zitat
 


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 16:18 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