首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

delphi7 的dbgrid控件 DrawColumnCell事件的 rect参数是什么意思,该怎么处理

2012-03-28 
delphi7 的dbgrid控件 DrawColumnCell事件的 rect参数是什么意思我用这个事件想在dbgrid的表格下方显示另

delphi7 的dbgrid控件 DrawColumnCell事件的 rect参数是什么意思
我用这个事件想在dbgrid的表格下方显示另一个dbgrid。在网上看到了相关代码里面有用rect这个参数的,但是我用的时候第二个dbgrid总是在表格的下方左右跳个不停。就是每一列下面都出现一次。想不明白。请高手指点指点……

[解决办法]
rect就是单元格的矩形,TRect,左上角坐标,和右下角坐标,相对dbgrid而言。第二个dbgrid总是在表格的下方左右跳个不停”,是因为你对Draw事件不太了解,Draw一般只要窗体或控件重画,就会触发。你要加一定的判断,在什么时候重画,什么时候不重画,跳动问题就解决了。
[解决办法]
example:


Delphi(Pascal) code
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);begin with TMyDBGrid(Sender) do begin   if DataLink.ActiveRecord=Row-1 then   begin     Canvas.Font.Color:=clWhite;     Canvas.Brush.Color:=$00800040;   end   else   begin     Canvas.Brush.Color:=Color;     Canvas.Font.Color:=Font.Color;   end;   DefaultDrawColumnCell(Rect,DataCol,Column,State); end;end; 

热点排行