请问有什么方法可以让我在表格中指定位置显示我要显示的数据?(30分)

  • 主题发起人 主题发起人 舒克
  • 开始时间 开始时间

舒克

Unregistered / Unconfirmed
GUEST, unregistred user!
比如说我需要在表格的第一行的第二列的小格子里显示'ABC',但是不改原来格子中的记录。
请问有何好方法?
 
处理 TDBGrid的OnDrawDataCell事件。
 
对不起,上面讲错了,该事件已经废弃,
应在 OnDrawColumnCell中处理。

在DBGRID的第一行第二列显示指定的数据。
注意:DBGrid的DefaultDrawing应为True(默认设置,不要改)
以下是成功代码,如果要真正控制任意行,必须精确计算 h.
不过,如果你的单元格(1,2)是不变,也可以直接给 h 赋值,
比如:h=50。
我竟然找不到 DBGrid 的行高?望请告知,不胜感激。

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
n,h:integer;
begin
n:=1; ////第2行,可设为任意行
h:=0;
with dbGrid1 do
begin
h:=n*(font.size*2+1)+(font.size)+2*TitleFont.size;
//有Title时,+2*TitleFont.size; 没线把 +2 去掉
if (DataCol=1) and (rect.top<h) and (rect.bottom>h)then
begin
canvas.Brush.color:=clRed;
canvas.FillRect (Rect);
canvas.TextOut(rect.left,rect.top,'ABC');
end;
end;
end;
 
接受答案了.
 

Similar threads

回复
0
查看
555
不得闲
回复
0
查看
804
不得闲
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部