I'm creating my own DBGRid, and it works fine , except of the pick list. whatever button style is set for the grid, it always shows the inplace editor , neither the pick list nor the ellipse button !
i can not figure the mistake I'm doing :( . here is the relevant code :
function TMyDBGrid.CreateEditor: TInplaceEdit;
begin
result:=TInplaceEdit.Create(self);
end;
function TMyDBGrid.GetEditStyle(ACol, ARow: integer): TEditStyle;
begin
case Columns[ACol].ButtonStyle of
cbsAuto : Result:=esPickList;
cbsNone : result:=esSimple;
cbsEllipsis : result:=esEllipsis;
end;
end;
And the constructor and destructor just call inherited , with the constructor just setting some colors for the grid.
The reason there's no pick list or button is that you are using an TInplaceEdit
as the cell editor which does not support the functionality you need.
The TDBGrid
uses an TDBGridInplaceEdit
that inherits from TInplaceEditList
as its in place editor which integrates a TCustomListbox
for its drop down list and paints and manages the edit button.