我现在有个dbgrid存储记录,状态分两种情况:停用和启用,我想停用的记录标识状态停用两个字用红色表示,启用用绿色表示。请各位大侠指点。我马上结贴。我给40分。

解决方案 »

  1.   

    怎么csdn上没有高手啊。连这个问题都没人回答。坛主快点来看看怎么回事
      

  2.   

    在Delphi中随意控制DBGrid每一行的颜色 
    有个问题是在Delphi中使用DBGrid时,如何让DBGrid中每一行颜色按照用户自己的意愿控制。最初看到这个问题时,我们以为非常非常简单,所以马上动手准备解决它。结果却发现不是那么回事,传统方法根本不能发挥作用。在电脑面前一直坐到凌晨4点,不断地调试,幸运地是凭借平时积累的一点编程经验,终于找到了开门的匙钥。现将它充公,供大家享用。 1、 数据表的建立 2、程序设置; 
    procedure Tinfo.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; 
    DataCol: Integer; Column: TColumn; State: TGridDrawState); 
    begin 
    if query1.FieldByName(’all’).asstring>40’ then 
    begin 
    dbgrid1.Canvas.Font.Color:=clred; 
    dbgrid1.Canvas.Brush.color:=clyellow; 
    end 
    else 
    begin 
    dbgrid1.Canvas.Font.Color:=clblue; 
    dbgrid1.Canvas.Brush.color:=clyellow; 
    end; dbgrid1.DefaultDrawColumnCell(rect,datacol,column,state); 
    end; 
      

  3.   

    没有办法,就让菜鸟现一下丑:在OnrawDataCell事件中:
        procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;
        Field: TField; State: TGridDrawState); 
        begin
          if field.AsString ='停用'  then
          SetTextColor((dbgrid1.canvas.handle,clred)
          else
          SetTextColor((dbgrid1.canvas.handle,clgreen)      dbgrid1.Canvas.TextRect(rect,0,0,field.AsString);
          dbgrid1.Canvas.Textout(rect.Left,rect.Top,field.AsString);
        end;
      

  4.   

    判断条件中还应该加上Field.fieldname='状态'
      

  5.   

    [Error] UF_Department_main.pas(276): ')' expected but ';' found
    [Error] UF_Department_main.pas(278): ';' expected but 'ELSE' found
    [Error] UF_Department_main.pas(280): Undeclared identifier: 'DBGDepartment'
    [Error] UF_Department_main.pas(280): ')' expected but identifier 'canvas' found
    [Error] UF_Department_main.pas(280): 'END' expected but ',' found
    [Error] UF_Department_main.pas(281): '.' expected but ';' found
    [Error] UF_Department_main.pas(287): Identifier redeclared: 'Finalization'
    [Error] UF_Department_main.pas(288): Undeclared identifier: 'sender'
    [Error] UF_Department_main.pas(288): Operator not applicable to this operand type
    [Error] UF_Department_main.pas(288): Missing operator or semicolon
    [Error] UF_Department_main.pas(290): Operator not applicable to this operand type
    [Error] UF_Department_main.pas(290): Object or class type required
    firetoucher(风焱) 的方法可行,但是报以下的错误,怎么办
    [Warning] UF_Department_main.pas(293): Text after final 'END.' - ignored by compiler
    [Error] UF_Department_main.pas(39): Unsatisfied forward or external declaration: 'TFrm_Department_main.ActExeclExecute'
    [Hint] UF_Department_main.pas(41): Private symbol 'cs' declared but never used
    [Hint] UF_Department_main.pas(42): Private symbol 'dbgirdcs' declared but never used
    [Fatal Error] NSB.dpr(156): Could not compile used unit 'base\UF_Department_main.pas'
      

  6.   

    if dm_base.qryDepartment.FieldByName('state').AsString='1'  then
          begin
            SetTextColor((DBGDepartment.canvas.Handle):=clred;
          end
          else
          begin
            SetTextColor((DBGDepartment.canvas.handle,clgreen);
          end;
          DBGDepartment.Canvas.TextRect(rect,0,0,field.AsString);
          DBGDepartment.Canvas.Textout(rect.Left,rect.Top,field.AsString);
    我是这样写的语句报上面的错误
      

  7.   

    if dm_base.qryDepartment.FieldByName('state').AsString='1'  then        SetTextColor(DBGDepartment.canvas.Handle,clred)
          else        SetTextColor(DBGDepartment.canvas.handle,clgreen);
          end;
          DBGDepartment.Canvas.TextRect(rect,0,0,field.AsString);
          DBGDepartment.Canvas.Textout(rect.Left,rect.Top,field.AsString);
    我改正了一点错误,但是为什么报错误如下
    [Error] UF_Department_main.pas(294): '.' expected but ';' found
      

  8.   

    procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; 
      const Rect: TRect; DataCol: Integer; Column: TColumn; 
      State: TGridDrawState);
    begin
         if Table1.FieldByName('狀態').Asstring = '停用'  then
            DBGrid1.Canvas.Font.Color := clBlue;
         DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
    end;
      

  9.   

    [Error] UF_Department_main.pas(292): Undeclared identifier: 'field'
    [Error] UF_Department_main.pas(292): 'END' expected but ')' found
    这是改正候报的错      DBGDepartment.Canvas.TextRect(rect,0,0,field.AsString);
          DBGDepartment.Canvas.Textout(rect.Left,rect.Top,field.AsString);
    在次处报 的错,我现在急需解决,请各位大侠快快帮我解决
      

  10.   

    field.AsString改成dm_base.qryDepartment.FieldByName('state').AsString
    试试行吗?
      

  11.   

    我试了试,但是所有字段的text的全变成启用是红色,停用是绿色大哥你再看看。