Hallo
DP'ler
ich bin auf ein Problem beim Entwickeln von Komponenten gestoßen. Ich möchte die Reihenfolge ändern in der die Properties in einer von TComponent abgeleitenen Komponente vom ObjektInstpektor gespeichert bzw geladen werden.
Ich hoffe Ihr könnt mir helfen.
Also ein Beispiel:
Delphi-Quellcode:
type
MyComonent = class(TComponent)
private
FProp1 : Integer;
FProp2: Integer;
procedure SetProp1(Value: Integer);
procedure SetProp2(Value: Integer);
published
property Prop1 : integer
read FProp1
write SetProp1;
property Prop2: integer
read FProp2
write SetProp2;
end;
procedure MyComponent.SetProp1(Value: Integer);
begin
FProp1 := Value;
end;
procedure MyComponent.SetProp2(Value; Integer);
begin
FProp2 := Value;
end;
Ok soweit ist das mit der Zuweisung auch kein Problem, aber was ist wenn ich den Wert von FProp2 bei der Zuweisung von Prop1 benötige,
sagen wir z.B. um zu FProp1 einen Fixwert zu addieren.
Ein Beispiel für den Setter von FPop1
Delphi-Quellcode:
procedure MyComponent.SetProp1(Value:Integer);
begin
FProp1 := Value + FProp2;
end;
Da WriteComponentRes und das Read-Gegenstück die Arbeit iterativ vornehmen, habe ich mal die Reihenfolge der Property-Definitionen inerhalb der MyComponent-Klasse geändert und Prop2 vor Prop1 gesetzt also so als Beispielcode:
Delphi-Quellcode:
property Prop2 : integer
read FProp2
write SetProp2;
property Prop1: integer
read FProp1
write SetProp1;
und gehofft das die Serialisierung von prop2 vor prop1 stattfindet, dazu habe ich auch mal in der entsprechenden
*.dfm Datei nachgesehen und dort hat sich die Reihenfolge tatsächlich geändert, aber beim Laden wird immer der Setter von Pop1 zuerst
aufgerufen
Ich bin mit meinem Latein erstmal am Ende, oder ich sehe das Offensichtliche nicht?
Und an alle die es noch nicht wissen ->