如何设置stringgrid的cells为红色,
或则其他什么颜色,
只要黑白效果不是很好,
请高人指点!
谢谢!

解决方案 »

  1.   


    procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    begin
     StringGrid1.Canvas.brush.Color := clInfoBk; 
        StringGrid1.Canvas.FillRect(Rect); 
        StringGrid1.Canvas.TextOut ( 
               rect.left,rect.top,allSG.Cells[acol,arow]); end;
      

  2.   

    请问这种方法是设置为什么颜色?
    还有我用你的代码后,报错为:
    allSG 没有定义。何解?
      

  3.   

    把allsg改为stringgrid1可以有颜色了,
    但是却把我第一行的“题头”(cells[0,0])也包括进去了,
    并且发现真正地第一行数据也就是cell[0,1]等覆盖掉了,
    不准确点说是把鼠标点到stringgrid的某行,
    那行的数据就变成空的了,
    这是为何呢?
    请高手指教!
      

  4.   

    不要只是问问题,自己也要动动脑筋!而且这类贴子很多,搜一下就能解决。我想My_first是把自己的代码粘贴给你的,allSG的地方应该是用你自己的StringGrid的名字来替换掉。这段代码是把StringGrid的单元格背景色改为clInfoBK,你可以替换为自己需要的颜色。如你所说的clRed。
      

  5.   

    OnDrawCell事件中的State参数是正在绘制的这个单元格的状态,你要根据这个状态(是否为Fixed的单元格、是否有焦点等等)改变你的绘制代码。比如遇到Fixed的单元格的时候,将画刷改成clBtnFace这样的。