掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
Delphi FMX StringGrid 枠線 (ID:151872)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
DrawLine試しましたが、うまくいきそうではありますが、各カラムセルwidthが異なる場合やTPointFを取得するのが、なかなか柔軟性に欠ける感じがしました。 もしよろしければ、DrawLineでのコードをご教授お願いします。 以下、テスト用で使ったコードです procedure TForm1.StringGrid1DrawColumnCell(Sender: TObject; const Canvas: TCanvas; const Column: TColumn; const Bounds: TRectF; const Row: Integer; const Value: TValue; const State: TGridDrawStates); var CellWidth, CellHeight: Integer; Rows, Columns: Integer; I, J: Integer; StartPoint, EndPoint: TPointF; begin // セルの数とサイズを設定 Rows := StringGrid1.RowCount; // 行数 Columns := StringGrid1.ColumnCount; // 列数 CellWidth := 100; // 各セルの幅 CellHeight := 50; // 各セルの高さ // グリッドのセルに対して線を描画 for I := 0 to Rows do begin // 水平線を描画 StartPoint := TPointF.Create(0, I * CellHeight); EndPoint := TPointF.Create(Columns * CellWidth, I * CellHeight); Canvas.DrawLine(StartPoint, EndPoint, 1, TStrokeBrush.Create(TBrushKind.Solid,TAlphaColorrec.Black)); //黒い線 end; for J := 0 to Columns do begin // 垂直線を描画 StartPoint := TPointF.Create(J * CellWidth, 0); EndPoint := TPointF.Create(J * CellWidth, Rows * CellHeight); Canvas.DrawLine(StartPoint, EndPoint, 1, TStrokeBrush.Create(TBrushKind.Solid,TAlphaColorRec.Black)); //黒い線 end; end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.