自定义 dbgrid 和 Picklist 问题
Custom dbgrid and Picklist issue
我正在创建自己的 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;
并且构造函数和析构函数只是调用 inherited ,构造函数只是为网格设置一些颜色。
没有选择列表或按钮的原因是您使用 TInplaceEdit
作为单元格编辑器,它不支持您需要的功能。
TDBGrid
使用继承自 TInplaceEditList
的 TDBGridInplaceEdit
作为其就地编辑器,该编辑器集成了 TCustomListbox
用于其下拉列表并绘制和管理编辑按钮。
我正在创建自己的 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;
并且构造函数和析构函数只是调用 inherited ,构造函数只是为网格设置一些颜色。
没有选择列表或按钮的原因是您使用 TInplaceEdit
作为单元格编辑器,它不支持您需要的功能。
TDBGrid
使用继承自 TInplaceEditList
的 TDBGridInplaceEdit
作为其就地编辑器,该编辑器集成了 TCustomListbox
用于其下拉列表并绘制和管理编辑按钮。