Yo cambiaría un par de detalles sutiles:
Código Delphi
[-]
type
TItemRegistros = class(TCollectionItem)
private
FRegName: string;
public
function GetDisplayName: string; override;
published
property RegName: string Read FRegName Write FRegName;
end;
implementation
function TItemRegistros.GetDisplayName: string;
begin
if RegName = '' then
Result := Format('%s [%d]', [ClassName, Index])
else
Result := RegName;
end;
¿El nombre tiene alguna funcionalidad mas que ser mostrado en tiempo de diseño?...