記事カテゴリ

ユーザー機能


 2024年4月25日(木) 14:01 JST

[Delphi] データ行が 0 行のグリッドを表示する

  • 投稿者:
  • 表示回数
    8,574

Delphi 標準搭載の TStringGrid はデータ行(非固定行)が 0 件(RowCount = FixedRows)になる様に設定することが禁じられています。
行数を固定行数と等しくなるように設定すると、自動的に固定行の値が減ります。
また、固定行の数を行数と同じに設定しようとすると、以下のエラーが発生し設定を完了することが出来ません。

固定行の数は行数より小さくなければなりません.

仕方がないので、StringGrid のデータ行を隠すことを検討します。隠すことによってユーザからはあたかも存在しないように見せることが出来ます。
以下のように設定します。

with StringGrid1 do
var
  i: integer;
begin
  for i := FixedRows to RowCount - 1
    RowHeights[i] := -GridLineWidth;
end;

データ行を隠し行に設定しています。マイナスの GridLineWidth にしているのは、隠すために 0 を設定すると罫線が残ってしまうために、罫線の高さ分も計算して減らしています。
これで見た目はデータ行がないように見えますが、マウスカーソルが移動してしまうので移動キーを押された場合の制御が別途必要になることがあります。

トラックバック

このエントリのトラックバックURL:
https://www.blackcat.xyz/trackback.php/ProgramingFAQ_del0056

以下のコメントは、その投稿者が所有するものでサイト管理者はコメントに関する責任を負いません。