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
Antwort Antwort
Seite 3 von 3     123   
tommie-lie
(Gast)

n/a Beiträge
 
#21

Re: hmm,

  Alt 29. Jul 2003, 22:23
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
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.
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#22

Re: Ist das ein D4 Bug ?

  Alt 31. Jul 2003, 09:49
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
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


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 21:14 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