![]() |
Read- und Write-Deklaration bei Klasseneigenschaften
Moinsen,
sagt mal ... ich sitze vor dem PC und starre auf den Code und frage mich, was da passiert ist. (Zugegeben, das passiert öfters, aber heute fühle ich mich eigentlich frisch und fit). Seit wann ist denn bei Eigenschaften von Klassen die Reihenfolge wichtig, in der ich die Deklarationen von read und write angebe? Ich hätte schwören können, dass dieser Code einst kompilierte. Heute aber nicht mehr:
Delphi-Quellcode:
Habe ich da was verpasst oder war das schon immer so? Aktuell habe ich leider kein altes Delphi zur Hand, um dies selbst zu testen.
TMiep = class(TObject)
private fData1 : integer; fData2 : integer; published property Data1 : integer read fData1 write fData1; // <--- geht property Data2 : integer write fData2 read fData2; // <--- geht nicht so richtig gut end; |
Re: Read- und Write-Deklaration bei Klasseneigenschaften
Zwischenzeitlich habe ich TurboDelphi installiert und oben stehender Code war auch mit Delphi 2006 nicht zu übersetzen.
Mein Fehler. ;-) Obwohl ich mir nocht erklären kann, wie diese Programmzeile in meine Anwendung kommen konnte. |
Re: Read- und Write-Deklaration bei Klasseneigenschaften
Das war schon immer so. Aber frag mich nicht, warum das so ist.
|
Re: Read- und Write-Deklaration bei Klasseneigenschaften
sooo, jetzt darf ich auch endlich mal senden
hab zwar bisher immer erst READ und dann WRITE geschrieben, aber grad getestet ... D4 und D7 meckert auch Zitat:
|
Re: Read- und Write-Deklaration bei Klasseneigenschaften
Was ist daran nicht zu verstehen? Die Reihenfolge ist
Delphi-Quellcode:
Das ist die Reihenfolge. Du schreibst auch nicht
property read write {basta}
Delphi-Quellcode:
Oder besser wird es hier sichtbar
function a2b: String (x, y: Integer);
Delphi-Quellcode:
Es ist eine Reihenfolge. Wieso sie so streng gehandhabt wird, obwohl es keinen richtigen Grund gibt, weiß ich nicht, wird aber anscheinend :-D
for x := 1 do 10 to
//Edit: Shi.., wenn man schon blöde quatscht wie ich, dann sollte man nicht Unsinn reden. Jetzt hab ich mich doch selbst bei der Reihenfolge vertan. Hab ober read und write getauscht. |
Re: Read- und Write-Deklaration bei Klasseneigenschaften
das es 'ne feste Reinfolge gibt wurde ja schon festgestlellt ^^
es hatten nur Einige die feste Reinfolge noch nicht mitbekommen oder es einfach vergessen :stupid: aber andersrum wäre doch auch logisch gewesen? man muß zuerst was reinschreiben und kann danach erst lesen und Default kommt vor allem (also default>write>read) :zwinker: |
Re: Read- und Write-Deklaration bei Klasseneigenschaften
Bei mir entsteht sowas durch einen Bug in Delphi.
nehmen wir folgende Klasse:
Delphi-Quellcode:
Eine Klasse mit einem Write-only-property und nichts wirklich ungewöhnliches...
type
TTest=class(TObject) private Fbla: boolean; protected public property bla: boolean write Fbla; end; Nun der Klasse eine neue Methode hinzufügen:
Delphi-Quellcode:
und dann Shift-Ctrl-C zur Codervervollständigung drücken. Delphi erzeugt im Implementation-Teil dann einen Prozedurrumpf:
private
procedure TestMe;
Delphi-Quellcode:
und außerdem wird das property dort oben mit einem READ-Teil versehen, der dort aber weder hingehört noch richtig plaziert ist.
procedure Test.TestMe;
begin end; |
Re: Read- und Write-Deklaration bei Klasseneigenschaften
Zitat:
Delphi-Quellcode:
property read write
|
Re: Read- und Write-Deklaration bei Klasseneigenschaften
Super!!! :thumb: Gehört zwar nicht zum Thema, aber Shift-Ctrl-C kannte ich noch gar nicht. Aber sowas hab ich schon lange gesucht :)
Hast noch mehr davon auf Lager? :-D |
Re: Read- und Write-Deklaration bei Klasseneigenschaften
Zitat:
Wie wäre es mit Block markieren und mit Shift+Ctrl+i alles nach recht und mit Shift+Ctrl+u nach links bewegen. @Sergej Ist mir schon selbst aufgefallen noch bevor ich dein Hinweis las. Ich hab es einfach von oben kopiert und das Falsche kopiert :oops: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:20 Uhr. |
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 by Thomas Breitkreuz