TCollection para armazenar colunas
11/05/2021
0
Boa tarde,
Gostaria de um encaminhamento para construção de componente, esse componente vai ter uma porperty chamada Columns, e essas columns pensei em definir com o tipo TCollection, porem gostaria de criar itens de 3 classes diferentes dentro dessa TCollection, que seriam itens TGridColumnEdit, TGridColumnCombo, e TGridColumnButton, pensei em declarar todos como TCollectionItem, porem não deu certo, pois quando do um create no FColumns tenho que passar um tipo, será que alguém poderia me dar um luz?
Classe que armazena itens:
Classe genérica para o item:
Classe secundaria para quando for do tipo button
Classe secundaria para quando for do tipo Edit
Gostaria de um encaminhamento para construção de componente, esse componente vai ter uma porperty chamada Columns, e essas columns pensei em definir com o tipo TCollection, porem gostaria de criar itens de 3 classes diferentes dentro dessa TCollection, que seriam itens TGridColumnEdit, TGridColumnCombo, e TGridColumnButton, pensei em declarar todos como TCollectionItem, porem não deu certo, pois quando do um create no FColumns tenho que passar um tipo, será que alguém poderia me dar um luz?
Classe que armazena itens:
TDPDBGridColumns = class(TCollection) FDPDBGrid : TDPDBGrid; function GetItem(Index: Integer): TCollectionItem; procedure SetItem(Index: Integer; Value: TCollectionItem); protected function GetOwner: TPersistent; override; procedure Update(Item: TCollectionItem); override; public constructor Create(DPDBGrid: TDPDBGrid); function Add: TCollectionItemClass; property Items[Index: Integer]: TCollectionItem read GetItem write SetItem; default; end;
Classe genérica para o item:
TDPDBGridColumn = class(TCollectionItem) private FButtonPropertys : TGage; FCaption : TCaption; FColor : TColor; FMargins : TMargins; FTipoComponente : TTipoComponente; FWidth : Integer; procedure SetCaption(const Value: TCaption); procedure SetColor(const Value: TColor); procedure SetGage(Value: TGage); procedure SetMargins(const Value: TMargins); public constructor Create(AOwner: TCollection); published Property ButtonPropertys : TGage read FButtonPropertys write SetGage; property Color : TColor read FColor write SetColor; property Caption : TCaption read FCaption write SetCaption; property TipoComponente : TTipoComponente read FTipoComponente write FTipoComponente; property Width : Integer read FWidth write FWidth; property Margins: TMargins read FMargins write SetMargins; end;
Classe secundaria para quando for do tipo button
TDPDBGridColumnButton = class(TDPDBGridColumn) private FButtonCaption : TCaption; published property Caption : TCaption read FButtonCaption write FButtonCaption; end;
Classe secundaria para quando for do tipo Edit
TDPDBGridColumnEdit = class(TDPDBGridColumn) private FDataSet : String; published property Dataset : String read FDataSet write FDataSet; end;
Edemar Polli
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)