读书人

delphi7 的dbgrid控件 DrawColumnCell

发布时间: 2012-03-28 15:40:03 作者: rapoo

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; 

读书人网 >.NET

热点推荐