各位大侠:查找过几个论坛也找不到答案,这里发贴请教一下:
有一个表A:
货物编号,货物长,货物宽,货物高
HW1234   105     200    300
 有一个表B:
货物编号,货物长,货物宽,货物高
HW1234   100     200    300我要做一个显示表A的 bdgrid网格控件
而且在显示的同时要和表B做比较,比较对应的货物编号
如果长、宽、高有不同的相应的网格的字体就改为红色我看过网上的,一行一行改变颜色的我找出来,但一个网格给改变颜色就不知道怎么弄了;
入 表A的货物编号是 HW1234的记录,dbgrid显示出来的”货物长“的列颜色应该就是红色;请各位指教!??

解决方案 »

  1.   

    procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    beginif 条件成立 then
     begin
      DBGrid1.Canvas.Font.Color:= clRed;
      DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
     end;end
    我的QQ5555044,愿交天下朋友!
      

  2.   

    用A表的编号去查B表的编号的记录,如果不同就改变A表哪些个编号的记录select *from B where 编号=datasource A.fieldbyname('编号').ASstringdatasource B .FieldByName('宽')<> dataSource A.FieldByName('宽')
    就可以改变 A 的着色了
      

  3.   

    procedure   TForm1.DBGrid1DrawColumnCell(Sender:   TObject;   const   Rect:   TRect; 
        DataCol:   Integer;   Column:   TColumn;   State:   TGridDrawState); 
    begin if   条件成立   then 
      begin 
        DBGrid1.Canvas.Font.Color:=   clRed; 
        DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State); 
      end; end 
    二楼的只是改变一行的颜色啊