Value(CheckBox, OptionButton)


CheckBox

CheckBoxの Valueプロパティはチェックボックスの状態を表します。Delphiの TCheckBoxコンポーネントは通常の True/Falseで判断できる 「Checked」プロパティと チェック/未チェック/どちらでもない の三つの状態から判断できる 「State」プロパティがあります。(Delphi3では TCheckBoxをリスト化した TCheckListコンポーネントもあります。)

Stateプロパティの値
意味
cbChecked チェック状態
cbUnchecked チェックしていない状態
cbGrayed どっちでも無い状態

OptionButton

OptionButtonの Valueプロパティは True/Falseのどちらかしかありません。Delphiでは TRadioButtonの 「Checked」プロパティで判断可能です。(Delphiには RadioButtonをリスト化した非常に便利な RadioGroupコンポーネントがあります。)

■ TCheckBoxの Checked, Stateの使用例
  procedure TForm1.Button1Click(Sender: TObject);
  begin
    if  CheckBox1.Checked then  begin
      {チェック状態ならメモ帳起動}
      ShellExecute(Handle, 'open', 'Notepad.exe', '', 'c:\', SW_SHOW);
    end;
    case  CheckBox1.State of
      {未チェック状態}
      cbUnchecked	  : ShowMessage('チェックしていない!');
      {チェック状態}
      cbChecked	    : ShowMessage('チェックしている!');
      {どっちでもない状態}
      cbGrayed	    : ShowMessage('どっち?');
    end;
  end;

  procedure TForm1.Button2Click(Sender: TObject);
  begin
    {どっちでも無い状態にする}
    CheckBox1.State :=  cbGrayed;
  end;                                                                  

■ TRadioButtonの Checkedの使用例
  procedure TForm1.Button1Click(Sender: TObject);
  begin
    if  RadioButton1.Checked then  begin
      {チェック状態ならメモ帳起動}
      ShellExecute(Handle, 'open', 'Notepad.exe', '', 'c:\', SW_SHOW);
    end;
  end;                                                                  

■ TCheckListの使用例
  procedure TForm1.Button1Click(Sender: TObject);
  var
    ix  : integer;
  begin
    {チェックリストからチェックされているものだけリストボックスへ}
    for ix  :=  0 to  CheckListBox1.Items.Count  -  1 do  begin
      if  CheckListBox1.Checked[ix] then  begin
        {リストボックスへ追加}
        ListBox1.Items.Add(CheckListBox1.Items[ix]);
      end;
    end;
  end;                                                                  

■ TRadioGroupの使用例
  procedure TForm1.Button1Click(Sender: TObject);
  begin
    case  RadioGroup1.ItemIndex of
      0 : ShowMessage('最初の項目!');
      1 : ShowMessage('二番目の項目!');
      2 : ShowMessage('三番目の項目!');
    else
          {選ばれている項目の内容を表示}
          ShowMessage(RadioGroup1.Items[RadioGroup1.ItemIndex]);
    end;
  end;