AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Read- und Write-Deklaration bei Klasseneigenschaften
Thema durchsuchen
Ansicht
Themen-Optionen

Read- und Write-Deklaration bei Klasseneigenschaften

Ein Thema von Daniel · begonnen am 5. Dez 2007 · letzter Beitrag vom 7. Dez 2007
Antwort Antwort
Seite 1 von 2  1 2      
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.919 Beiträge
 
Delphi 10.4 Sydney
 
#1

Read- und Write-Deklaration bei Klasseneigenschaften

  Alt 5. Dez 2007, 09:19
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:
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;
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.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.919 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Read- und Write-Deklaration bei Klasseneigenschaften

  Alt 5. Dez 2007, 11:31
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.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Read- und Write-Deklaration bei Klasseneigenschaften

  Alt 5. Dez 2007, 11:34
Das war schon immer so. Aber frag mich nicht, warum das so ist.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.136 Beiträge
 
Delphi 12 Athens
 
#4

Re: Read- und Write-Deklaration bei Klasseneigenschaften

  Alt 5. Dez 2007, 11:35
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 von D7 : Zeile 22 = property Data2:
[Fehler] Unit1.pas(22): ';' erwartet, aber Bezeichner 'read' gefunden
[Fehler] Unit1.pas(22): ',' oder ':' erwartet, aber ';' gefunden
[Fehler] Unit1.pas(23): Typ erwartet, aber 'END' gefunden
[Fataler Fehler] Project1.dpr(5): Verwendete Unit 'Unit1.pas' kann nicht compiliert werden
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#5

Re: Read- und Write-Deklaration bei Klasseneigenschaften

  Alt 5. Dez 2007, 11:49
Was ist daran nicht zu verstehen? Die Reihenfolge ist

property read write {basta} Das ist die Reihenfolge. Du schreibst auch nicht

function a2b: String (x, y: Integer); Oder besser wird es hier sichtbar

for x := 1 do 10 to Es ist eine Reihenfolge. Wieso sie so streng gehandhabt wird, obwohl es keinen richtigen Grund gibt, weiß ich nicht, wird aber anscheinend

//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.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.136 Beiträge
 
Delphi 12 Athens
 
#6

Re: Read- und Write-Deklaration bei Klasseneigenschaften

  Alt 5. Dez 2007, 11:57
das es 'ne feste Reinfolge gibt wurde ja schon festgestlellt ^^
es hatten nur Einige die feste Reinfolge noch nicht mitbekommen oder es einfach vergessen


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)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
OlafSt

Registriert seit: 2. Mär 2007
Ort: Hamburg
284 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

Re: Read- und Write-Deklaration bei Klasseneigenschaften

  Alt 5. Dez 2007, 12:46
Bei mir entsteht sowas durch einen Bug in Delphi.

nehmen wir folgende Klasse:
Delphi-Quellcode:
type
TTest=class(TObject)
private
  Fbla: boolean;
protected
public
  property bla: boolean write Fbla;
end;
Eine Klasse mit einem Write-only-property und nichts wirklich ungewöhnliches...

Nun der Klasse eine neue Methode hinzufügen:
Delphi-Quellcode:
private
  procedure TestMe;
und dann Shift-Ctrl-C zur Codervervollständigung drücken. Delphi erzeugt im Implementation-Teil dann einen Prozedurrumpf:
Delphi-Quellcode:
procedure Test.TestMe;
begin

end;
und außerdem wird das property dort oben mit einem READ-Teil versehen, der dort aber weder hingehört noch richtig plaziert ist.
  Mit Zitat antworten Zitat
Sergej

Registriert seit: 12. Jun 2003
Ort: Stuttgart
169 Beiträge
 
#8

Re: Read- und Write-Deklaration bei Klasseneigenschaften

  Alt 5. Dez 2007, 13:17
Zitat von Popov:
Was ist daran nicht zu verstehen? Die Reihenfolge ist

property write read {basta}
Nicht nur schon bekannte Tatsachen zitiert, nein auch noch falsch...

property read write
Ceterum censeo cartaginem esse delendam
  Mit Zitat antworten Zitat
Oracle
(Gast)

n/a Beiträge
 
#9

Re: Read- und Write-Deklaration bei Klasseneigenschaften

  Alt 5. Dez 2007, 13:22
Super!!! 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?
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#10

Re: Read- und Write-Deklaration bei Klasseneigenschaften

  Alt 5. Dez 2007, 13:35
Zitat von Oracle:
Super!!! 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?
Strg+Leertaste und Strg+j kennst du wahrscheinlich.

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
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 20:10 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