Pergunta

Para meu próprio descendente de tcollection, quero estender o editor de propriedades da coleção. Quero ver mais colunas para outras propriedades do meu tcollectionItem. E eu tenho uma sorte porque é muito fácil. A única coisa que quero fazer foi substituir esses três métodos

TAttributeList = class(TOwnedCollection)
private
  ...
protected
  function GetAttrCount: Integer; override;
  function GetAttr(Index: Integer): string; override;
  function GetItemAttr(Index, ItemIndex: Integer): string; override;
public
  ...
end;

Para recuperar o número de colunas, o título de uma coluna e o valor de uma coluna para um item da coleção.

Agora eu quero editar as células do atributo. É divertido parar aqui e escrevi um editor de coleção completo sozinho (talvez como uma cópia ou descrito do TCollectionEditor na unidade colnedit.pas)?

Espero que haja algo mais simples, mas, caso contrário, é interessante em exemplos de construção de um complexo TCollectionEditor.

Ciao Heinz Z.

Foi útil?

Solução

A intenção aqui é fornecer esses atributos de coluna extra como propriedades publicadas sobre os próprios tcollectionItem. Portanto, quando você seleciona o item, ele é selecionado no inspetor de objeto, onde você pode editar e alterar os valores.

Basta criar um descendente de tcollectionItem e publicar as propriedades que representam os atributos extras que você deseja ser editável. Certifique -se de que, ao construir o descendente do TCollection, você especifica seu tipo tcollectionItem para instanciar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top