本例效果图:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Grids;
type
TForm1 = class(TForm)
StringGrid1: TStringGrid;
Panel1: TPanel;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
procedure FormCreate(Sender: TObject);
procedure StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
var
TextFormat: TTextFormat;
procedure TForm1.FormCreate(Sender: TObject);
var
i,j: Integer;
begin
with StringGrid1 do
for i := 0 to ColCount - 1 do
for j := 0 to RowCount - 1 do
Cells[i,j] := Format('%d%d',[i,j]);
StringGrid1.Font.Style := [fsBold];
StringGrid1.Font.Size := 10;
end;
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var
str: string;
begin
Randomize;
StringGrid1.Canvas.Brush.Color := Random($FFFFFF);
StringGrid1.Canvas.FillRect(Rect);
str := StringGrid1.Cells[ACol,ARow];
StringGrid1.Canvas.TextRect(Rect, str, TextFormat);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Randomize;
StringGrid1.Font.Color := Random($FFFFFF);
TButton(Sender).Caption := '字体颜色';
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
TextFormat := [tfSingleLine, tfCenter, tfVerticalCenter];
StringGrid1.Refresh;
TButton(Sender).Caption := '居中对齐';
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
TextFormat := [tfSingleLine, tfRight, tfVerticalCenter];
StringGrid1.Refresh;
TButton(Sender).Caption := '右对齐';
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
TextFormat := [tfSingleLine, tfLeft, tfVerticalCenter];
StringGrid1.Refresh;
TButton(Sender).Caption := '左对齐';
end;
end.