我正在创建自己的DBGRid,除了选择列表外,它工作正常。无论为网格设置什么按钮样式,它总是显示就地编辑器,既不是选择列表也不是椭圆按钮!
我无法想象我正在做的错误:(。这是相关的代码:
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;
构造函数和析构函数只调用继承,构造函数只是为网格设置了一些颜色。
答案 0 :(得分:4)
没有选择列表或按钮的原因是您使用TInplaceEdit
作为不支持所需功能的单元格编辑器。
TDBGrid
使用从TDBGridInplaceEdit
继承的TInplaceEditList
作为其原位编辑器,该编辑器为其下拉列表集成TCustomListbox
并绘制和管理编辑按钮。