Hallo,
ich bin dabei eine eigene Komponente zu entwickeln. Erstmalig tritt nun der Fall auf, dass ich eine Liste eigener Unterobjekte in meiner Komponente speichern muss. Dazu wurde mir im Thread
Speichern eines Objekts mit einer Liste von Objekten im DFM geraten, mit TCollection und TCollectionItem zu arbeiten und schon würden die Unterobjekte im
DFM-File automatisch mitgespeichert. Das ist leider nicht der Fall. Bestimmt habe ich TCollection falsch verwendet oder nicht alle notwendigen Anpassungen vorgenommen. Vielleicht spielt auch meine Delphi-Version eine Rolle (Delphi 5 Enterprise). Folgender Code stellt den Kern dar:
Delphi-Quellcode:
TMyItem = class(TCollectionItem)
...
end;
TMyItemList = class(TCollection)
private
FItems: array of TMyItem;
protected
function GetItem(AIndex: Integer): TMyItem;
procedure SetItem(AIndex: Integer; AItem: TMyItem);
...
public
...
function Add: TCollectionItem; overload;
function Add({eigene Argumente für Initialisierung}): TMyItem; overload;
property Items[Index: Integer]: TMyItem read GetItem write SetItem; default;
end;
TCustomMyComp = class(TCustomControl)
private
FItems: TMyItemList;
...
public
...
property Items: TMyItemList read FItems;
end;
Die Property vom Typ TMyItemList ist published, der Property Editor von TCollection wird angezeigt und ich erstelle meine Items damit. Wenn ich allerdings die Form neu öffne (so dass er die Items aus der
DFM laden müsste), sind sie nicht da. In der
DFM wird auch nichts weiter erstellt (Unterobjekteintäge für meine Items).
Was muss ich tun, damit meine Items auch in der
DFM gespeichert werden, wenn sie zur Entwurfszeit mit dem Property Editor von TCollection erstellt werden?
"Seit er seinen neuen Computer hat, löst er alle seine Probleme, die er vorher nicht hatte."