


 
 
 
 
 
 
 |
Delphi2010 文字列グリッド(StringGrid) 2010/09/01 |
前回は[Additional]内の「MaskEdit」(マスクエディット)について見ましたので、今回は同じく[Additional]内の「StringGrid」(文字列グリッド)について見てみます。文字列グリッドは Delphi6 にもあります。
文字列グリッドは、簡単に表を作りたい場合に利用されるコンポーネントです。このコンポーネントは便利なので私自身もよく利用しています。配置してみます。1つ目なので Nameプロパティは「StringGrid1」となります。固定セル(入力編集出来ない項目名を表示するためのセル)が結構、白いですね。Delphi6では灰色そのものって感じでしたけれど。
この固定セルの表現方法は DrawingStyleプロパティで変更する事が出来ます。
gdsThemed |  | 現在のオペレーティング システムのテーマを使用 |
gdsClassic |  | 標準のテーマの指定がないスタイルを使用/固定セルの色は FixedColorプロパティで指定出来ます。従来パターンですね。 |
gdsGradient |  | グラデーション表示を使用/固定セルの色は GradientStartColorプロパティと GradientEndColorプロパティで指定出来ます。 |
横(カラム;列)のセルの数は、ColCountプロパティ、
縦(ロウ;行)のセルの数は、RowCountプロパティ、で決まります。
固定セルの列数は FixedColsプロパティ、固定セルの行数は FixedRowsプロパティで決めます。編集セルは最低でも1列・1行は存在するようになります。固定セルは「0」指定可能(=固定セルは無し)ですが、その場合、実行時にセル幅を変更する事が出来なくなります。
なお、プログラム実行中、編集セルが「0」になってしまうような場合は自動的に固定セルが解除されるようになってしまいますので注意が必要です。
プログラム上で、今、カーソルのあるセルの列・行がどこにあるのかを取得したい場合は、列が知りたい場合は Col プロパティ、行が知りたい場合は Row プロパティ、を利用します。値は 0,1,2,…となります。イベントハンドラ内ではその引数の内容で分かる場合もあります。
DefaultColWidthプロパティは、全ての列の幅[ドット値]を指定する事が出来ます。同様に、DefaultRowHeightプロパティは、全ての行の高さ[ドット値]を指定する事が出来ます。1つ1つの列の幅を指定する場合は、プログラム上で、ColWidths[n]プロパティを使用します(n:何個目の列かを示す;0〜)。同様に、行の高さのほうは RowHeights[n]プロパティです。デザイン時での指定はありません。例えば、画面表示の際に幅や高さを変えたい場合は、OnShowイベント内に記述しておきます。
そして重要になってくるのが Optionsプロパティで、この文字列グリッドがどういう動作をするのかをここで決めます。「goColSizing」を True にすると、実行中、マウスで列幅を変更することが出来るようになります。「goRowSizing」をTrueにすると、同様に、行高さを変更することが出来るようになります。変更した結果のドット数は自分で記憶・設定するようプログラミングする必要はありますけれど。「goRangeSelect」を True にすると、マウスや[Shift]キー+矢印キーでの範囲選択が可能になります(※マウスでの範囲選択が出来るのは「goEditing」がFalseの場合のみ)。False にすると範囲選択は出来ません。範囲選択時、どれくらい範囲選択したのかは Selectionプロパティで取得する事が出来ます。「goEditing」を True にする事で、セルで文字入力・編集を行う事が出来るようになります。False の場合は文字を表示するだけで入力・編集はできません。「goTabs」をTrueにすると、[TAB]キーでのセル移動が出来るようになります。False の場合はセル移動は出来ず、次のコンポーネントへのフォーカス移動となります。「goRowSelect」を True にすると、1行ずつのセル移動/選択となります。False の場合は1セル単位での移動/選択となります。「goThumbTracking」を Trueにすると、スクロールバーをドラッグしている間、内容がスクロール表示されます。Falseの場合は、スクロールバーのドラッグを離した時に内容が切替表示されます。
そして、各セル内の文字列を扱うには、Cells[c,r]プロパティを利用します。文字列の2次元配列の変数のような感じで扱えますので非常に簡単です。c:列(カラム)、r:行(ロウ)です。
という感じで、DrawingStyleプロパティと、その他のコンポーネントにもあるお約束のプロパティ・イベント以外は、これまでと同様に使えそうです。
|
|
バッチファイル
BASIC
C言語のお勉強
拡張子な話
DOSプログラム
Delphi
>Delphi入門編
>Delphi2010
▲2010/08/31
2010/09/01
▼2010/09/02
シェアウェア
Script!World
データベース
|