Zitat von
Neutral General:
@ MaBuSE Edit: Ja das weiß ich ja... Guck mal
EDIT: Der Editor ist noch nicht so schön aber das is ja auch nur mal um zu gucken obs geht.. das die ListBox nach dem start so klein ist, kommt von ner Art AutoSize-Funktion die das Ding hat
Dein Problem ist folgendes:
Normale Properties werden direkt in der Formulardatei (*.dfm) gespeichert.
Mit Objekten funktioniert das aber nicht.
Du mußt Dich also selbst darum kümmern die Infos in der
DFM zu speichern.
Hier findest Du weitere Infos:
DefineProperties (Methode von TComponent)
Das müsste so oder so ähnlich gehen.
(Habe ich jetzt nicht in Delphi getestet
)
Delphi-Quellcode:
...
type
TMyComp = class(TComponent)
private
FMyData: TMyData;
procedure ReadMyData(Reader: TReader);
procedure WriteMyData(Writer: TWriter);
...
protected
procedure DefineProperties(Filer: TFiler);
...
published
MyData: TMyData read FMyData write FMyData;
...
procedure TMyComp.DefineProperties(Filer: TFiler);
function WriteData: Boolean;
begin
if Filer.Ancestor <> nil then
Result := not FMyData.IsEqual(TMyComp(Filer.Ancestor).FMyData) else
Result := FMyData.Count > 0;
end;
begin
inherited DefineProperties(Filer);
Filer.DefineProperty('MyData', ReadMyData, WriteMyData, WriteData);
end;
procedure TMyComp.ReadMyData(Reader: TReader);
begin
Reader.ReadValue;
Reader.ReadCollection(MyData);
end;
procedure TMyComp.WriteMyData(Writer: TWriter);
begin
Writer.WriteCollection(MyData);
end;
...