delphi - 如何使用TDBGrid绘制一个空单元格?

标签 delphi tdbgrid

我正在尝试为TDBGrid的单元格显示一个空文本,而不更改该字段的值或该单元格的背景色。
我不确定这是否正确,但是我尝试使用OnDrawDataCell事件,如下所示:

procedure TMyForm.MyGridDrawDataCell(Sender: TObject;
  const Rect: TRect; Field: TField; State: TGridDrawState);
var
    Grid : TDBGrid;
begin
  inherited;
  if(Field.FieldName = 'MYFIELD') then
  begin
    Grid := Sender as TDBGrid;
    Grid.Canvas.FillRect(Rect);
  end;
end;


在事件中放置断点后,我注意到它从未执行过

最佳答案

使用OnDrawColumnCell事件处理程序而非过时的OnDrawDataCell解决

正如documentation所说:


不要编写OnDrawDataCell事件处理程序。现“ OnDrawDataCell”为
已过时且包含在内,以实现向后兼容。而是写一个
OnDrawColumnCell事件处理程序。

关于delphi - 如何使用TDBGrid绘制一个空单元格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42487995/

相关文章:

delphi - 类助手不会覆盖祖先的虚拟方法

delphi - 无法覆盖 TCollection.Notify : Declaration of Notify differs from previous declaration

mysql - 添加搜索,在 DBGrid 中搜索数据并临时更改 DBGrid 显示的内容 - Delphi

delphi - 如何在数据库网格中显示TIMEDIFF(现在,然后)?

delphi - 如何将几何数据字段显示为文本

delphi - 在Delphi中使用TWebBrowser获取网页的大小

delphi - 如何根据结果类型重载函数?

mysql - Delphi双击DBGrid查找行的字段内容

delphi - TDBGrid 列的设计时间还是运行时间?

delphi - 打印 TDBGrid