我想编写:StringGrid1控件第五列的值如果等于True,则把该值所在的行的颜色填充为黄色,
如果StringGrid1控件第五列的值等于False,则把该值所在的行的颜色填充为灰色。请高手多指点!

解决方案 »

  1.   

    抛砖引玉procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    var Value : string;
    begin
      with TStringGrid(Sender) do
        begin
        Value := Cells[ACol,ARow];
        if UpperCase(Cells[4,ARow])='TRUE' then
           Canvas.Brush.Color := clYellow
        else if UpperCase(Cells[4,ARow])='FALSE' then
           Canvas.Brush.Color := clGray
        else Canvas.Brush.Color := clWhite;
        Canvas.FillRect(Rect);
        Canvas.TextOut(Rect.Left,Rect.Top,Value);
        end;
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      StringGrid1.Cells[4,1] := 'True';
      StringGrid1.Cells[4,3] := 'False';
      StringGrid1.Refresh;
    end;