[Delphi] TStringGrid






トップページへ

「Delphi(楽天市場で探すamazonで探す)でExcelのような表計算スタイルでデータを表示できるStringGridの基礎」です。

※全てのDelphiで動作する保証はありません。また、内容に関し管理人は全ての責任を負いかねます。

 

最低限、下記のプロパティ、メソッドがわかれば使用することができると思います。

 

カーソルのあるセル(アクティブセル)の位置を把握し、そのセルに値(dmy)をセット

var
arow,acol: Integer;
begin

arow := StringGrid.Row;
acol := StringGrid.Col;

StringGrid.Cells[acol,arow] := ‘dmy’;


 

見出し列、見出し行:

FixedCols, FixedRows

 

列数、行数:

ColCount、RowCount

 

初期の列幅、行高:

DefaultColWidth, DefaultRowHeight

 

列幅を変える:

e.g. TForm.OnCreateなどで TStringGird.ColWidths[0] := 400;

 

セルを指定する場合:

e.g. 列2行3のセル

StringGrid.Cells[1,2]

*0始まり。先頭のセルは StringGrid.Cells[0,0]

 

特定のセルにカーソルをセットする

eg. 1行目の8列目のセルへ

StringGrid.Col := 7;
StringGrid.Row := 0;
StringGrid.SetFocus;

 

 

 

編集(文字入力を可能に):

Options の goEditing

 

さらに編集が容易にする(マウスのクリック回数が減る):

Options の goAlwaysShowEditor

 

タブキーでセル間を移動:

Options の goTabs

 

文字列にスペース,カンマ,または引用符がある場合に分割して一括セット:

e.g. TStringGird.Rows[i].CommaText := 文字列(一行分);

 

例えばフォーム作成時にセル幅を指定し、文字列をセットする場合

※フォームデザイン時に「2行、3列」「見出し行、列はともに0」と指定済み

procedure TForm1.FormCreate(Sender: TObject);
begin

StringGrid.ColWidths[0] := 100;
StringGrid.ColWidths[1] := 50;
StringGrid.ColWidths[2] := 50;

StringGrid.Rows[0].CommaText := 'ABCDEFG,123,あいう';
StringGrid.Rows[1].CommaText := '日本統一テスト,1235名,予選';

end;

 

この画像が実行結果で、セットする文字列(一行分)をカンマで区切っていたので、各セルごとに文字列がセットされました。

Delphiのストリンググリッドを使用したサンプル画像

 

Delphiメニューへ戻る






関連記事
[Delphi] フォームを閉じる時に入力チェックをしてエラーなら閉じない

[Delphi] 時間のかかる処理は砂時計・ListBoxの高速化

[Delphi] 個人的 逆引き関数リファレンス

[Delphi]小ネタ備忘録

[Delphi]MySQLへの接続で失敗(未解決)