|
Delphi2010 チェックボックス(CheckBox) 2010/08/21 |
前頁で[Standard]内の「Button」(ボタン)について書きましたので次に、同じく[Standard]内の「CheckBox」(チェックボックス)について見てみます。チェックボックスは Delphi6 にもあります。
チェックボックスは、何か処理を行う際のモードやオプション等を指定する場合に利用され、チェックあり・チェックなし、という状態での指定となります。それでは配置してみます。1つ目なので Nameプロパティは「CheckBox1」となり、Captionプロパティは「CheckBox1」となります。
チェックの四角の横の文字は Captionプロパティで指定します。
チェックを入れるかどうか・入れたかどうかの確認は、Checkedプロパティで指定・確認出来ます。これが Falseの場合はチェック無し、Trueの場合はチェック有りです。
<オブジェクトインスペクタ>を見ていきます。
まずは AllowGrayedプロパティでしょうか。ヘルプより。
AllowGrayedプロパティが trueの場合,チェックボックスはチェック,非チェック,淡色表示の3つの状態を持つことができます。AllowGrayedプロパティが falseに設定されている場合,チェックボックスの状態は,チェックマークが付けられているか,はずされているかの 2 つのいずれかになります。 |
との事です。淡色表示というとつい Enabled が False の状態か?と思ってしまいますが違うようです。これを True にした場合の結果は、Stateプロパティで確認できるようです。
cbUnchecked | | 非チェック |
cbGrayed | | 淡色表示 |
cbChecked | | チェック |
この場合でもCheckedプロパティは有効となりますが、淡色表示の場合 Checkedプロパティは False になります。
ボタンクリックのイベントハンドラを以下のように書き換えて確認します。
procedure TForm1.Button1Click(Sender: TObject);
var
s : string ;
begin
if CheckBox1.Checked then
s := 'CheckOn '
else
s := 'CheckOff ';
Case(CheckBox1.State)of
cbChecked: s := s + 'チェック';
cbUnchecked: s := s + '非チェック';
cbGrayed: s := s + '淡色表示';
End;
MessageDlg('ボタンを押しました!'+s, mtInformation,
[mbOk], 0, mbOk);
end; |
保存・コンパイル(再構築)・実行します。ボタンをクリックして確認します。
フォームデザイン時に<オブジェクトインスペクタ>で Stateプロパティの内容を変えることも出来ます。ただ、どういう場合に利用するのか、というのはありますね。状況によって異なるでしょうし。
そのほかには別段気になるプロパティもイベントも無さそうな感じです。
ついでに RadioButton(ラジオボタン)についても確認します。
Delphi2010 ラジオボタン(RadioButton) |
[Standard]内の「RadioButton」(ラジオボタン)について見てみます。ラジオボタンは Delphi6 にもあります。
ラジオボタンは、チェックボックス同様、何か処理を行う際のモードやオプション等を指定する場合に利用され、チェックあり・チェックなし、という状態での指定となりますが、チェックボックスのように2度目のチェックでオフになる、という事にはならず、複数のラジオボタンを配置して、そのうちのどれにチェックするのかを指定・確認するという事になります。他のラジオボタンにチェックしたらチェック無しとなります。
それでは配置してみます。1つ目なので Nameプロパティは「RadioButton1」となり、Captionプロパティは「RadioButton1」となります。
チェックの丸の横の文字は Captionプロパティで指定します。
チェックを入れるかどうか・入れたかどうかの確認は、Checkedプロパティで指定・確認出来ます。これが Falseの場合はチェック無し、Trueの場合はチェック有りです。ラジオボタンの場合は、1つだけ配置しても余り意味はなく、基本的には複数のラジオボタンを配置します。
ボタンクリックのイベントハンドラを以下のように書き換えて確認します。
procedure TForm1.Button1Click(Sender: TObject);
var
s : string ;
begin
if CheckBox1.Checked then
s := 'CheckOn '
else
s := 'CheckOff ';
Case(CheckBox1.State)of
cbChecked: s := s + 'チェック';
cbUnchecked: s := s + '非チェック';
cbGrayed: s := s + '淡色表示';
End;
if RadioButton1.Checked then s := s + '<モードA>';
if RadioButton2.Checked then s := s + '<モードB>';
if RadioButton3.Checked then s := s + '<モードC>';
MessageDlg('ボタンを押しました!'+s, mtInformation,
[mbOk], 0, mbOk);
end; |
保存・コンパイル(再構築)・実行します。ボタンをクリックして確認します。
おっと、文字幅が決まっていて?文字内容が自動的に次の行になるようですね。プログラムを作る時には注意しないといけないかもしれません。見え方が少しダサいですので。
<オブジェクトインスペクタ>をざっと見ましたが、特別変わったところは見当たりませんでした(すでに他のコンポーネントで書いた部分を除いて)。従来と同じ感じで扱えそうです。
ちなみにプログラミングを行う際には、「CheckBox1」や「RadioButton1」と書くと文字が長いので面倒に感じる場合、Nameプロパティで「CH1」や「RB1」のように省略して書く事もあります。
|
|
バッチファイル
BASIC
C言語のお勉強
拡張子な話
DOSプログラム
Delphi
>Delphi入門編
>Delphi2010
▲2010/08/20
2010/08/21
▼2010/08/22
シェアウェア
Script!World
データベース
|