如题。我在DBGrid的DrawColumnCell事件中给特定的Cell设置了不同的颜色,现在我想要得到特定的某一格的颜色通过什么方式可以得到?
谢谢大家。

解决方案 »

  1.   

    真的是没分了,可是在这还有个问题要大家帮忙。答对的以后再给分吧谢谢。在把DBGrid中的数据往外导的时候,如果数字段的长度太长,那么在导出到EXCEL中后数据会变成类似以下这种形式:1.10402E+11这个可能和EXCEL设置有关,如何将其设置为显示原来形式的数据?
      

  2.   

    在把DBGrid中的数据往外导的时候,如果数字段的长度太长,那么在导出到EXCEL中后数据会变成类似以下这种形式:1.10402E+11~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    在导出时,字段值前加个符号:'    //'123456789//在Excel中就作为字符串处理
      

  3.   

    to gxgyj(杰克.逊) :
      请问是什么形式的加法?
      比如说字段值是a,那导出时写法应该是:'//'+a吗?
      如果这样的话,那会在前面多了个'//'号啊?
      

  4.   

    to gxgyj(杰克.逊) :
        谢谢!
        这个贴子的题目如果有人回答我另外开贴给你加分。如果没人回答我就在这给你加分。
    希望还是有人来回答啊
      

  5.   

    private
        { Private declarations }
      public
      x,y:integer;  //全局变量
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.DBGrid1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    begin
       self.X := X;
      self.Y := Y;
      Dbgrid1.Repaint;
    end;procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    var
      pt :TPoint;
     begin
      pt.X := self.X;
      pt.Y := self.Y;  
      if PtInRect(Rect,pt) then
      begin
        dbgrid1.Canvas.Brush.Color := clRed;
        dbgrid1.DefaultDrawDataCell(Rect,Column.Field,State);
      end;
      end;end.
      
    http://community.csdn.net/Expert/topic/3527/3527411.xml?temp=3.629702E-02
      

  6.   

    to gxgyj(杰克.逊):
        非常感谢。
        但是上述回答仍是设置颜色。我的意思是设完了颜色了,我的DBGrid中的不同格子根据不同的条件显示的是不同的颜色了,那我在访问每个格子的时候怎么得到我给它设的颜色也就是当前颜色?
        目的其实是这样,我要把这个DBGrid按照显示时的颜色设置导出到一个excel中,导出后相应网格的颜色和屏幕上显示时是相对应的。