在一个按钮事件中如何触发 DBGird 控件的 DrawDataCell 事件? 在线等待 DBGrid.Refresh;还有OnDrawColumnCell事件。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 No.3 不推荐DBGrid1.Visible := not DBGrid1.Visible;DBGrid1.Visible := not DBGrid1.Visible; 参考:procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);begin if not Odd(TDBGrid(Sender).DataSource.DataSet.RecNo) then begin TDBGrid(Sender).Canvas.Brush.Color := clSkyBlue; TDBGrid(Sender).DefaultDrawColumnCell(Rect, DataCol, Column, State); end;end; 提示你,直接调用DBGrid1DrawColumnCell就可以了,具体怎么调用就不用我说了吗?就一个过程……………… to lijx18(lijx),wmh_654321(qqq): 你们都测试过了吗? OnDrawDataCell中的参数可不时随便就写出来的 TO:zswang(伴水)(需要充充电) 大侠: 谢谢你的参考代码,我不知道怎么触发这个事件,如果是直接调用 DBGrid1OnDrawDataCell(),它的那些参数该是什么呢?? 谢谢 具体的参数写法和其他方法都不能直接解决你的问题参考如下代码type TForm1 = class(TForm)//................ DBGrid1: TDBGrid; DataSource1: TDataSource; procedure DataSource1DataChange(Sender: TObject; Field: TField); procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); private { Private declarations } FCurrBook: string; public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);begin if FCurrBook = TDBGrid(Sender).DataSource.DataSet.Book then begin TDBGrid(Sender).Canvas.Brush.Color := clHighlight; TDBGrid(Sender).Canvas.Font.Color := clRed; TDBGrid(Sender).DefaultDrawColumnCell(Rect, DataCol, Column, State); end;end;procedure TForm1.DataSource1DataChange(Sender: TObject; Field: TField);begin FCurrBook := TDataSource(Sender).DataSet.Book; DBGrid1.Refresh;end;//............ //你先测试测试吧procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); begin if not Odd(TDBGrid(Sender).DataSource.DataSet.RecNo) then begin // 条件由你自己设置 TDBGrid(Sender).Canvas.Brush.Color := clSkyBlue; TDBGrid(Sender).DefaultDrawColumnCell(Rect, DataCol, Column, State); end; end; zswang(伴水)(需要充充电) 的对啦 。还不快很分呀。 深夜超级喊救命,如何把一块内在虚拟成硬盘并把EXE保存在上面启动运行 如何给分啊 关于进度条显示问题 急:关于数据库程序打包的题 TWebBrowser小问题 远程资源共享(把远程计算机组成类似内部局域网) 一个类中一个method多态的问题 一个关于主从表的问题????? 解决了一定有高分的 : ) 关于delphi+sqlserver的问题 kylix 那里有down.谢谢。 一个简单问题,却不知道怎么搞的?数据问题 100分相送,有谁用过TXMLTransform控件
DBGrid1.Visible := not DBGrid1.Visible;
DBGrid1.Visible := not DBGrid1.Visible;
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if not Odd(TDBGrid(Sender).DataSource.DataSet.RecNo) then begin
TDBGrid(Sender).Canvas.Brush.Color := clSkyBlue;
TDBGrid(Sender).DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
end;
你们都测试过了吗?
OnDrawDataCell中的参数可不时随便就写出来的
谢谢你的参考代码,我不知道怎么触发这个事件,如果是直接调用
DBGrid1OnDrawDataCell(),它的那些参数该是什么呢?? 谢谢
type
TForm1 = class(TForm)
//................
DBGrid1: TDBGrid;
DataSource1: TDataSource;
procedure DataSource1DataChange(Sender: TObject; Field: TField);
procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
private
{ Private declarations }
FCurrBook: string;
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if FCurrBook = TDBGrid(Sender).DataSource.DataSet.Book then begin
TDBGrid(Sender).Canvas.Brush.Color := clHighlight;
TDBGrid(Sender).Canvas.Font.Color := clRed;
TDBGrid(Sender).DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
end;procedure TForm1.DataSource1DataChange(Sender: TObject;
Field: TField);
begin
FCurrBook := TDataSource(Sender).DataSet.Book;
DBGrid1.Refresh;
end;//............
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if not Odd(TDBGrid(Sender).DataSource.DataSet.RecNo) then begin
// 条件由你自己设置
TDBGrid(Sender).Canvas.Brush.Color := clSkyBlue;
TDBGrid(Sender).DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
end;