如题

解决方案 »

  1.   

    procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    var Rect1 : TRect;
        s : string;
    begin
     if (ACol =1) and (ARow = 1) then
      begin
        Rect1 := Rect;
        s:= 'abcde';
        DrawText(TStringGrid(Sender).Canvas.Handle, PChar(s), Length(s), Rect1, DT_CENTER);
      end
    end;
      

  2.   

    liangqingzhi(老之) 正解~~~稍为补充一下procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    var
    s : string;
    begin
    if (ACol =1) and (ARow = 1) then //指定(1,1)单元格
    begin
    s:= TStringGrid(Sender).Cells[ACol,ARow];//单元格的值TStringGrid(Sender).Canvas.Brush.Color := clRed;//设置背景为红色
    TStringGrid(Sender).Canvas.FillRect(Rect);//补充这一句,否则cell中将会显示一部分旧的数据DrawText(TStringGrid(Sender).Canvas.Handle, PChar(s), Length(s), Rect, DT_CENTER);
    end;end;
      

  3.   

    procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
      VAR
     s: String;
     R: TRect;
    begin
      R := Rect;
     if   StringGrid1.Cells   [Acol,ARow]='0'   then
       BEGIN
           s:='0';
        StringGrid1.Canvas.font.Color:=clLime;
        StringGrid1.Canvas.Brush.Color:=clred;
        TStringGrid(Sender).Canvas.FillRect(Rect);
        DrawText(TStringGrid(Sender).Canvas.Handle, PChar(s), Length(s), R, DT_CENTER);
       END; if   StringGrid1.Cells   [Acol,ARow]='1'   then
       BEGIN    StringGrid1.Canvas.font.Color:=clred;
        StringGrid1.Canvas.Brush.Color:=clLime;
        TStringGrid(Sender).Canvas.FillRect(Rect);
        DrawText(TStringGrid(Sender).Canvas.Handle, PChar(s), Length(s), R, DT_CENTER);
       END; StringGrid1.Canvas.pen.Color:= StringGrid1.Font.Color   ;
     StringGrid1.canvas.fillRect(rect);
     StringGrid1.Canvas.textout(rect.left+1,rect.Top   ,StringGrid1.cells[acol,arow]);
    end;這樣怎麼不行啊!!!
      

  4.   

    這樣怎麼不行啊!!!稍为补充一下procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
      VAR
     s: String;
     R: TRect;
    begin
      R := Rect;
     if   StringGrid1.Cells   [Acol,ARow]='0'   then
       BEGIN
           s:='0';
        StringGrid1.Canvas.font.Color:=clLime;
        StringGrid1.Canvas.Brush.Color:=clred;
        TStringGrid(Sender).Canvas.FillRect(Rect);
        DrawText(TStringGrid(Sender).Canvas.Handle, PChar(s), Length(s), R, DT_CENTER);
       END; if   StringGrid1.Cells   [Acol,ARow]='1'   then
       BEGIN
            s:='1';
        StringGrid1.Canvas.font.Color:=clred;
        StringGrid1.Canvas.Brush.Color:=clLime;
        TStringGrid(Sender).Canvas.FillRect(Rect);
        DrawText(TStringGrid(Sender).Canvas.Handle, PChar(s), Length(s), R, DT_CENTER);
       END; StringGrid1.Canvas.pen.Color:= StringGrid1.Font.Color   ;
     StringGrid1.canvas.fillRect(rect);
     StringGrid1.Canvas.textout(rect.left+1,rect.Top   ,StringGrid1.cells[acol,arow]);
    end;