Delphiでテーブルを描画するには
Delphiでグリッドを作成するには、TStringGridコンポーネントを使用します。以下に簡単なサンプルコードを示します。
- Delphiで新しいVCLアプリケーションプロジェクトを作成する。
- 「標準」パネルからフォームに TStringGrid コンポーネントをドラッグ・アンド・ドロップします。
- StringGridコンポーネントをダブルクリックし、StringGridのイベントエディタを開きます。
- StringGridのOnCreateCellイベントに以下のコードを追加する。
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var
grid: TStringGrid;
begin
grid := TStringGrid(Sender);
grid.Canvas.Brush.Color := clWhite; // 设置单元格背景颜色
grid.Canvas.FillRect(Rect);
grid.Canvas.Pen.Color := clBlack; // 设置单元格边框颜色
grid.Canvas.Rectangle(Rect);
// 获取单元格文本
if (ARow >= 0) and (ACol >= 0) then
grid.Canvas.TextOut(Rect.Left + 2, Rect.Top + 2, grid.Cells[ACol, ARow]);
end;
- StringGrid の OnResize イベントに以下を追加:
procedure TForm1.StringGrid1Resize(Sender: TObject);
begin
StringGrid1.DefaultColWidth := StringGrid1.Width div StringGrid1.ColCount;
StringGrid1.DefaultRowHeight := StringGrid1.Height div StringGrid1.RowCount;
end;
上述コードでは、StringGridのOnCreateCellイベントを使用して、各セルの背景色、枠線、テキストを描画しています。また、OnResizeイベントでは、フォームのサイズに合わせてテーブルを自動調整するよう、各セルの初期幅と高さを設定しています。
アプリを実行したら、表を描画できるDelphiフォームが表示されます。