Estoy intentando crear un componente personalizado con una propiedad de colección. Sin embargo, si intento abrir el editor de colecciones durante el tiempo de diseño haciendo clic en el botón "..." en el inspector de objetos, no ocurre nada. Lo que me estoy perdiendo?Uso del descendiente TOwnedCollection en Delphi
Aquí es mi TCollection descendiente:
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;
Y el tema:
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;
Gracias, eso me ayudó a detectar los errores: no llamé a RegisterClass y tuve un error en el constructor que causó que el campo interno para la colección fuera nulo. – Harriv
No hay problema, me alegro de poder ayudar. –