看的不明白,你把DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);拿出循环试试

解决方案 »

  1.   

    改为这样:
    ADOQuery_Temp.first;
       while Not ADOQuery_Temp.Eof do
       begin
         ADOQuery_List.first;
    0A     while Not ADOQuery_List.Eof do
         begin
           if ADOQuery_List.FieldByName('emp_id').AsString=ADOQuery_Temp.fieldbyname('rydm').asstring then
           begin
             dbgrid1.Canvas.Font.Color:=clRed;
             DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
           end;
           ADOQuery_list.Next;
    0A     end;
         ADOQuery_Temp.Next;
       end;—————————————————————————————————
    MaximStr := '宠辱不惊,看庭前花开花落,去留无意;
                 毁誉由人,望天上云卷云舒,聚散任风。';
    if Not Assigned(I) then
      I := TI.Create(Nil);
    I.Maxim := MaximStr;
    I.Explain := '假如上述代码中出现“OA”、“3D”等字样,改为“=”等';
    I.Desire := '加不加分随你';
    —————————————————————————————————
           
      

  2.   

    if adoquery_temp.RecordCount=0 then exit
        else
          ADOQuery_Temp.first;
          for i:=0 to adoquery_temp.RecordCount-1 do
          begin
              m:=ADOQuery_Temp.fieldbyname('rydm').asstring;
            for j:=0  to  ADOQuery_List.RecordCount-1  do
             begin
               if ADOQuery_List.FieldByName('emp_id').AsString=m then
                   dbgrid1.Canvas.Font.Color:=clRed;
               DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
               ADOQuery_list.Next;
            end;
             ADOQuery_Temp.Next;
          end;