AFsoft WebSite(エーエフソフト・ウェブサイト)
 

オペレーティング・システムについて

プログラミングについて
ホームページについて
キャドについて
電子カタログについて
書籍・雑誌
イベント
リンク集
DelphiXE3 [FMX] 文字列グリッド(StringGrid)2013/11/02
 
前回は [Grids]内のグリッド(Grid)を見てみました。次は同じく[Grids]内の文字列グリッド(StringGrid)について見ていきます。
   【Delphi2010の記事はこちら】
   【DelphiXE3[VCLアプリケーション]の記事はこちら】
 
[Grids]内
FMX
 
ヘルプより。
TStringGrid は、文字列の処理を簡略化することを目的としたグリッド コントロールを表します。
 
TStringGrid オブジェクトをフォームに追加すると、テキスト データを表形式で表すことができます。 TStringGrid には、グリッドの外観を制御する多くのプロパティがあります。また、ユーザーの操作に応じてグリッドの表構造を活用するイベントとメソッドもあります。
 
TStringGrid には、オブジェクトをグリッド内の各文字列と関連付ける機能があります。 これらのオブジェクトによって、ユーザーに表示される文字列が表す情報や動作をカプセル化できます。
 
Delphi2010・VCLアプリケーションでの文字列グリッドと同様、Cellsプロパティ等があります。ですのでグリッド(Grid)よりは操作し易いと思われます。
 


 
AlternatingRowBackground
このグリッド内の行の背景を描画する方法を指定することができます。True に設定した場合、行は代替背景色で描画されます。
Animated
このスクロール ボックスのコンテンツのスクロールを行う際に、スムーズなスクロール アニメーションを使用するかどうかを示します。
AutoHide
このスクロール ボックスにアタッチされているスクロール バーを、自動的に表示または非表示にするのかを示します。
RowCount
グリッド内の行の数を示します。
RowCountを読み取ると、Columns配列内のエントリの数を判断することができます。RowCountを設定すると、グリッドの一番下で、行が追加または削除されます。
RowCountの値には、グリッドの左にある固定列が、グリッドの本体内のスクロール可能な列と共に含まれています。
ShowHeader
グリッドにヘッダー行を表示するかどうかを示します。
ShowHorzLines
このグリッドに行を区切る水平線を表示するかどうかを示します。
ShowScrollBars
このスクロール ボックスにアタッチされているスクロール バーを可視にするかどうかを示します。
ShowSelectedCell
このグリッドが、実行時に選択セルを強調表示するかどうかを決定します。
ShowSizeGrip
このスクロール ボックスの右下隅にサイズ グリップを表示するかどうかを示します。
ShowSizeGrip プロパティを True に設定すると、スクロール ボックス コントロールの右下隅にあるグリップのサイズ変更が有効になります。もしくは、このグリップを表示したくない場合には、False に設定します。
 
ヒント: グリップを使ってサイズを変更しようとすると、実際には、このスクロール ボックスを保持しているフォームがサイズ変更されます。このため、スクロール ボックスの Align プロパティが alClient に設定されている場合に、このプロパティを使用してください。
ShowVertLines
このグリッドに列を区切る垂直線を表示するかどうかを示します。
UseSmallScrollBars
このスクロール ボックスにアタッチされているスクロール バーに、オペレーティング システムが定義する通常サイズではなく、小さいサイズのフットプリントを使うかどうかを示します。
 
配置した文字列グリッドを右クリックし、表示されるコンテキストメニューの「項目エディタ」を選択指定、あるいは、ダブルクリックをすると、「項目デザイナ」画面が表示されます。
 

列(カラム)項目の種類はグリッド(Grid)とは異なり、「TStringColumn」のみ選択出来る状態となっています。
 
 
「子項目の追加」というのがありますが、子項目を追加した場合、後で編集をする場合に子項目が表示されないという症状が起きますし、画面上も煩雑になりますから使用は控えた方が良いような気はします。
 
 
試しに、TStringColumn を3つ追加してみます。



 
まずは各列のヘッダーから。
フォーム表示時のイベントハンドラを下記のようにします。
procedure TForm1.FormShow(Sender: TObject);
begin
 StringColumn1.Header := '文字1';
 StringColumn2.Header := '文字2';
 StringColumn3.Header := '文字3';
end;
保存・コンパイル・実行を行うと下図のようになります。

 
適当に文字入力してみます。

グリッド(Grid)の場合と異なり、何もしなくても、文字列内容は保持されます。これは Cellsプロパティを持っているから、というのもあるのでしょうね。
 
そのため、文字列グリッドには、グリッド(Grid)にあった OnGetValueイベント・OnSetValueイベントがオブジェクトインスペクタにて見つかりません。
 
(ヘルプより)
Cells[
 ACol, ARow
 : Integer]
string グリッド内の各セルの文字列リストを表示します。
Cells を使用すると、特定のセルにある文字列にアクセスすることができます。 ACol はセルの列座標、ARow はセルの行座標です。 最初の行は、行 0、最初の列は、列 0 となります。
ColumnCountInteger グリッド内の列の数を示します。
ColumnCount を読み取ると、Columns 配列内のエントリの数を判断することができます。 ColumnCount を設定すると、グリッドの右側で、列が追加または削除されます。ColumnCount の値には、グリッドの左にある固定列が、グリッドの本体内のスクロール可能な列と共に含まれています。
RowCountInteger グリッド内の行の数を示します。
RowCount を読み取ると、Columns 配列内のエントリの数を判断することができます。RowCount を設定すると、グリッドの一番下で、行が追加または削除されます。RowCount の値には、グリッドの左にある固定列が、グリッドの本体内のスクロール可能な列と共に含まれています。
ColumnIndexInteger 選択されたセルを含む、列のインデックスを示します。
ColumnIndex を実行時に使用すると、グリッド内の現在の列を判断することができます。ColumnIndex を設定すると、フォーカスを、新しい列にある現在行のセルに移動させます。最初の列のインデックスは 0、2 番目は 1 のようになります。
SelectedInteger グリッドで現在位置している行を示します。
Selected プロパティを正の数値に設定すると、特定の行を選択状態にすることができます。Selected を読み取ると、グリッドで現在位置している行のインデックスを取得することができます。
最初の行のインデックスは 0、2 番目は 1 のようになります。
TopRowInteger グリッドにおいて、最初に表示されるスクロール可能な行のインデックスを示します。
TopRow を読み取ると、可視となっているスクロール可能な領域内の、最初の行のインデックスを判断することができます。TopRow を設定すると、グリッド内で行をスクロールし、TopRow インデックスを持つ行が、固定行の後の最初の行となります。
VisibleRowsInteger グリッドで表示されているスクロール可能な行の数を示します。
VisibleRows を使用すると、グリッドで完全表示されているスクロール可能な行の数を判断することができます。 VisibleRows は、グリッドの下にある一部表示されている行は含まれません。
 
おおよそ同じようには使えそうですが、VCLアプリケーションとの大きな違いは、VCLの場合には存在する、FixedCols・FixedRows というものがなく、VCLの場合は FixedRowsを「1」にして、そこに列名を記述し、Cells[X,0] でアクセスしていました。そして、FixedColsの設定をしてそこに行名を記述したりしていました(Cells[0,Y])。
しかし FireMonkey(FMX)の場合には、まず、FixedCols・FixedRowsというものはありません。列名は、カラムの Headerプロパティ(StringColumn1.Header、あるいは、StringGrid1.Columns[1].Header)で指定し、そこは Cells[X,0] とはなりません。Cellsプロパティは、選択し、入力・編集出来る文字列内容を示す範囲となります。
 
FixedColsのような事をしたい場合は、そのカラムの ReadOnlyプロパティを「True」、Enabledプロパティを「False」にすれば良いと思われます。色については、スタイルブックを利用し、スタイルを指示しておけばいいかもしれません。
 
 
バッチファイル
BASIC
C言語のお勉強
拡張子な話
DOSプログラム
Delphi
>Delphi入門編
>Delphi2010
>DelphiXE3
▲2013/11/01
 2013/11/02
▼2013/11/03
 
シェアウェア
Script!World
データベース
 
お問い合わせ 
本サイトはリンクフリーです
リンクバナー
(C)Copyright 1999-2015. By AFsoft All Rights Reserved.