Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Ist das ein D4 Bug ? (https://www.delphipraxis.net/6947-ist-das-ein-d4-bug.html)

tommie-lie 29. Jul 2003 22:23

Re: hmm,
 
Zitat:

die Frage ist warum man einen Dummywert übergeben MUSS und ohne den Dummy einen Typefehler bekommt.
Weil man normalerweise keinen Dummywert übergibt. Übergeben wird automatisch der Wert, der dem Property zugewiesen wurde.
Sobald du schreibst
Delphi-Quellcode:
MyInstance.MyProperty := 'Hello'
wird der String "Hello" an die prozedur "SetMyProperty" als Parameter übergeben. Vollkommen automatisch, da soll man gar keine Dummyparameter angeben.
Der Typenfehler kommt, weil das property vom Typ String ist. Wenn du Setze_Doc_Type ohne Parameter deklarierst, ist "kein Parameter" natürlich nciht mehr kompatibel mit "String" ;-)

Zitat:

Ich mag es nicht wenn der Compiler mich erst anmotzt aber dann einen Dummy schluckt.
.
Was das für genaue Ursachen hat, weiß ich immo auch nicht genau. Dazu müsste ich Delphi starten, was aber eine Option ist, die mir zur Zeit leider nicht zur Verfügung steht. Ich tippe aber einfahc mal darauf, daß man der Prozedur einen zweiten Hilfsparameter angeben kann, falls du zum Beispiel die gleiche Set-Methode für mehrere properties verwendest, damit die Methode weiß, welches Property es war (beispielsweise bei mehreren Hosenangaben, die alle die gleichen Farbwerte erhalten können :) ). Dadurch könnte der Compiler direkte Übergaben von Werten akzeptieren, aber wie gesagt, genaueres kann ich dir da immo nicht sagen. Wenn cih dran denke, werde ich nachher der Sache nachgehen.

oki 31. Jul 2003 09:49

Re: Ist das ein D4 Bug ?
 
Hi Leute.

Ich glaube JoelH hat ein Verständnisproblem mit der Sichtbarkeit von Klassenelementen.

Hier mal die Delphi-Hilfe zu diesem Thema. Vielleicht wird dann einiges klarer.


In einer Klasse hat jedes Element ein Sichtbarkeitsattribut, das durch die reservierten Wörter private, protected, public, published und automated angegeben wird. Im folgenden Beispiel wird die Eigenschaft Color als published deklariert:

published property Color: TColor read GetColor write SetColor;

Die Sichtbarkeit bestimmt, wo und wie auf ein Element zugegriffen werden kann. private entspricht der geringsten, protected einer mittleren und public, published und automated der größten Sichtbarkeit.


Der ganze Zauber mit Property und read /write ist nur dafür da, dann Klassenvariablen im "öffentlichen" Umgang für schreiben und lesen einzuschrängen oder in der Bearbeitung in der Klasse zugriffsfähig zu machen (siehe mein Beitrag weiter oben).

Gruß oki


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:02 Uhr.
Seite 3 von 3     123   

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