Pregunta

para mi propio descendiente TCollection quiero extender el editor de propiedad de colección. Quiero ver más columnas para otras propiedades de mi TCollectionItem. Y yo soy un afortunado porque es bastante fácil. La única cosa que quiero hacer era anular estos tres 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 el número de columnas, el título de una columna y el valor de una columna de un elemento de la colección.

Ahora quiero editar las células de atributos. Se diversión se detiene aquí y tengo que escribir un editor de la colección completa por mí mismo (tal vez como una copia o desendant de TCollectionEditor en ColnEdit.pas unidad)?

Espero que haya algo más simple pero por lo demás interesante en los ejemplos de construcción de un complejo TCollectionEditor.

Ciao Heinz Z.

¿Fue útil?

Solución

La intención aquí es proporcionar atributos aquellos columna extra como las propiedades publicadas en la TCollectionItem de sí mismos. Así que cuando se selecciona el elemento, se selecciona en el inspector de objetos donde se puede editar y cambiar los valores.

Hay que crear un descendiente de TCollectionItem y publicar las propiedades que representan los atributos adicionales que podrán editarse. Asegúrese de que al construir el descendiente TCollection, se especifica el tipo de TCollectionItem para crear una instancia.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top