Forum: Sonstige Fragen zu Delphi
Delphi
by 3_of_8,
6. Feb 2007
*kratz*
Naja egal. Welche Workaround gibt es da? Einfach die Property in der Oberklasse statt mit Direktzugriff auf die Felder mit einem Setter deklarieren?
Forum: Sonstige Fragen zu Delphi
Delphi
by 3_of_8,
5. Feb 2007
Ich meinte ja auch, er solle es nur tun, wenn man ansonsten Ärger mit den überschriebenen Properties bekommt.
Wie gesagt, es ist für mich äußerst... befremdlich/seltsam/gewohnheitsbedürftig, dass TB(a).Foo:=42 etwas anderes bewirkt als a.Foo:=42. Intuitiv würde ich sagen, das widerspricht der "dynamischen Bindung", wenn man so verschiedene Effekte durch Typencasting bei Klassen erreicht.
Forum: Sonstige Fragen zu Delphi
Delphi
by 3_of_8,
5. Feb 2007
Klar. Aber Delphi kennt virtuelle Methoden, also könnte der Compiler einen virtuellen Setter anlegen anstatt das "write FFoo" wörtlich zu nehmen. Ich habe jedenfalls relativ lange gebraucht, um diesen Fehler zu finden, vor allem deshalb, weil ich an der falschen Stelle gesucht habe. Ich habe mir gedacht "ich habe hier die Property überschrieben, also passt das" und habe Hunderte andere Codezeilen...
Forum: Sonstige Fragen zu Delphi
Delphi
by 3_of_8,
5. Feb 2007
Das ist es ja: Die soll der Compiler implizit anlegen. Sinngemäß würde ich sagen: Wenn ich die Property in der Unterklasse überschreibe und eine Instanz dieser Unterklasse habe, dann soll der Compiler auch die überschriebene Property aufrufen.
Forum: Sonstige Fragen zu Delphi
Delphi
by 3_of_8,
5. Feb 2007
Morgen.
Ich habe gerade eine recht... seltsame Entdeckung bei der Überschreibung von Properties gemacht.
Es sieht so aus, als würde der Compiler sich gar nicht erst überlegen, ob er die Property der Oberklasse oder die der Unterklasse nimmt. Ich kann das Vorgehen des Compilers zwar verstehen, aber eigentlich müsste er doch bei einer Situation wie der in meinem Testprojekt einen eigenen...