在DBGrid中选中一条记录,记录呈蓝色反显状态,但是DBGrid一失去焦点,记录又会恢复原来的色彩,有什么办法让DBGrid失去焦点后,DBGrid内的记录也呈蓝色反显状态?

解决方案 »

  1.   

    选种记录后,改变数据库中字段的值,然后根据数据库中的值来改变DBGrid的颜色
      

  2.   

    dbgrid有一个属性:options/dbalwaysshowselection
    把它设置为true就可以了
      

  3.   

    给个例子你看看,很简单的。---- 在ColoredDBGrid1的onDRawColoredDBGrid事件中输入下列代码,设定由Wage(工资)来决定在ColoredDBGrid1各行的颜色。 
    procedure TForm1.ColoredDBGrid1 DRawColoredDBGrid 
    (Sender: TObject;  Field: TField; var Color: 
    TColor; var Font: TFont);
    Var
      p : Integer;
    begin
        p := Table1.FindField('wage').AsInteger;
      //取得当前记录的Wage字段的值。
        if(p < 500) then begin                 
    //程序将根据wage值设置各行的颜色。
          Color := clGreen;
          Font.Style := [fsItalic];      
    //不仅可以改变颜色,还可以改变字体
        end;
        if(p >= 500) And (p < 800) then
          Color := clRed;
         if(p >=800) then begin
          Color := clMaroon;
          Font.Style := [fsBold];
        end;
    end;