Forum: Object-Pascal / Delphi-Language
Delphi
by Sir Rufo,
1. Okt 2014
Darum hat man TComponent ja auch die Funktionalität mit dem Streamen mitgegeben.
Denn für diese Art von Klassen ist das Marshalling definitiv nicht gedacht - kann man mal ausprobieren, lässt man aber schnell wieder die Finger von.
Sehr wohl gedacht ist das Marshalling aber z.B. für die kleinen, leichten Klassen wo es Sinn macht, diese z.B. über eine "Leitung" zu schicken, um diese an...
Forum: Object-Pascal / Delphi-Language
Delphi
by Sir Rufo,
1. Okt 2014
Ok, wir sind da anderer Ansicht.
Allerdings funktioniert das Marshalling nun mal genau so. Über deinen Weg wäre es nicht möglich ohne jede Klasse um so ein zusätzliches Geraffel zum Serialisieren zu erweitern.
Forum: Object-Pascal / Delphi-Language
Delphi
by Sir Rufo,
1. Okt 2014
Ganz einfach weil Eigenschaften berechnet, nur lesend, nur schreibend sein können.
Bei der De-Serialisierung kommt es darauf an, die Instanz wieder in den Zustand zu versetzen, wie die Instanz zum Zeitpunkt der Serialisierung war.
Und wie macht man das bei so einem Objekt ohne auf die Felder zuzugreifen?
TFoo = class
private
FState : Integer;
function GetIsFinished : Boolean; //...
Forum: Object-Pascal / Delphi-Language
Delphi
by Sir Rufo,
1. Okt 2014
Kann ich nicht nachvollziehen, denn ich benutze diesen Prefix andauernd und sehe keine Nachteile, sondern nur Vorteile.
Anhand des Prefix sehe ich sofort aus welchem Scope die denn nun kommt:
Field
Argument
Local
Aber jeder wie er will ;)
Forum: Object-Pascal / Delphi-Language
Delphi
by Sir Rufo,
1. Okt 2014
Grundproblematik ist eben die Konvention, dass die Felder einer Klasse automatisch den Prefix F bekommen.
TFoo = class
private
FVal : string;
public
property Val : string read FVal write FVal;
end;
Bei der Serialisierung werden aber eben nicht die Properties, sondern die Felder serialisiert (was auch gut ist). EMBA hat nun einfach dieses Prefix F dabei berücksichtigt und zusätzlich...