Ich versuche, eine benutzerdefinierte Komponente mit einer Auflistung-Eigenschaft zu erstellen. Wenn ich jedoch versuche, den Sammlungseditor während der Entwurfszeit zu öffnen, indem ich im Objektinspektor auf die Schaltfläche "..." klicke, passiert nichts. Was ich vermisse?Verwendung von Nachkommen TOwnedCollection in Delphi
Hier ist mein TCollection Nachkomme:
TMyCollection = class(TOwnedCollection)
private
function GetItem(Index: Integer): TMyCollectionItem;
procedure SetItem(Index: Integer; const Value: TMyCollectionItem);
public
function Add : TMyCollectionItem;
property Items[Index: Integer]: TMyCollectionItem read GetItem write SetItem;
end;
Und der Artikel:
TMyCollectionItem = class(TCollectionItem)
private
FValue: integer;
protected
function GetDisplayName: string; override;
public
procedure Assign(Source: TPersistent); override;
constructor Create(Collection: TCollection); override;
destructor Destroy; override;
published
property Value : integer read FValue write FValue;
end;
Danke, das hat mir geholfen, die Fehler zu erkennen: Ich habe die RegisterClass nicht aufgerufen, und ich hatte einen Bug im Konstruktor, der das interne Feld für die Sammlung auf Null brachte. – Harriv
Kein Problem, froh, dass ich helfen konnte. –