TToggleBox/ja: what changed
Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.
Title: TToggleBox/ja
| Old | New | Line | |
|---|---|---|---|
| 1 | + | **TToggleBox** はシングルクリックで有効もしくは、無効とされる2つの状態を保持するラベルのあるボタンである。これは[[Component Palette/ja|コンポーネントパレットの]][[Standard tab/ja|Standardタブで]]利用できる。 | |
| 2 | + | ||
| 3 | + | [[Source code|source codeのどこからでも]]、クエリ**`Status := <ToggleBox>.Checked;`**で有効か、無効を調べることができる。「有効(Checked)」を通常のブール値として用いることができる。そのため、**`<ToggleBox>.Checked := True;`**と割り当てることが可能である。 | |
| 4 | + | ||
| 5 | + | ### 簡単な例 | |
| 6 | + | ||
| 7 | + | - 新しい[[Application|アプリケーションを]]作り[[TForm|Formに]]3つのTToggleBoxesを配置する。 | |
| 8 | + | - ToggleBox1...3のキャプションを「赤」、「緑」、「青」とし、それぞれを*tbRed*、*tbGreen*、*tbBlue*と変える。 | |
| 9 | + | - [[TButton|TButtonをフォームに]]追加し、そのキャプションを「青に塗る」と変え、*btnPaint*と名づける。 | |
| 10 | + | - TButtonに対する*OnClick*イベントを作る:オブジェクトインスペクタへ移動し、*OnClick*イベントを選択し、\[...\]をクリックするか、フォーム上でそれをダブルクリックする。 | |
| 11 | + | - *btnPaint*の イベントハンドラに以下のコードを加える: | |
| 12 | + | ||
| 13 | + | ``` pascal | |
| 14 | + | procedure TForm1.btnPaintClick(Sender: TObject); | |
| 15 | + | var | |
| 16 | + | aColor: TColor; | |
| 17 | + | begin | |
| 18 | + | aColor:=0; //Form1のToggleboxの背景色をToggleboxに従って変える。 | |
| 19 | + | if tbRed.Checked then aColor:=aColor + $0000FF; | |
| 20 | + | if tbGreen.Checked then aColor:=aColor + $00FF00; | |
| 21 | + | if tbBlue.Checked then aColor:=aColor + $FF0000; | |
| 22 | + | Color := aColor; //<Formular>.Colorプロパティの変更はformの書き直しを引き起こす | |
| 23 | + | end; | |
| 24 | + | ``` | |
| 25 | + | ||
| 26 | + | - [[Program|プログラムを起動する]]、このように見えるはずだ: | |
| 27 | + | ||
| 28 | + |  -\>  | |
| 29 | + | ||
| 30 | + | ### イベント | |
| 31 | + | ||
| 32 | + | 先の例との違いは、ボタンのクリックでフォームが書き換えられないが、すでにトグルボタンの1つ自動的にその1つがクリックされていることだ。 | |
| 33 | + | ||
| 34 | + | 先の例を、そのソースコードの*OnClick*イベントハンドラのを削除することによって変更することができる。また、簡単に新しい例を作ることができる: | |
| 35 | + | ||
| 36 | + | - 新しいフォームアプリケーションを作り、フォームに3つのTToggleBoxを配置する。 | |
| 37 | + | - ToggleBox1...3のキャプションを「赤」、「緑」、「青」とし、それぞれを*tbRed*、*tbGreen*、*tbBlue*、即ち、**`TForm1.tbRedChange(Sender: TObject);`**とし、他のToggleBoxも同様にそれに倣う: | |
| 38 | + | - フォームで*tbRed*をダブルクリックするか、フォームで*tbRed*を選択し、オブジェクトインスペクタのそのイベントタブ移動し、*OnChange*イベントを選び、\[...\]をクリックする。 | |
| 39 | + | - それで[[Procedure|プロシージャ]] *tbRedChange*ができる。 | |
| 40 | + | - さらに、フォームの*tbGreen*を選択する。 | |
| 41 | + | - オブジェクトインスペクタのそのイベントタブに移動し、*OnChange*イベントを選び、隣のコンボボックスの*tbRedChange*を選択する。 | |
| 42 | + | - そして、フォーム上の*tbBlue*を選択、同様に、*tbGreen*へと進む。 | |
| 43 | + | - *\<ToggleBox\>.Checked*により、トグルボタンの*OnChange*イベントをフォームの色にする、こう変える: | |
| 44 | + | ||
| 45 | + | ``` pascal | |
| 46 | + | procedure TForm1.tbRedChange(Sender: TObject); | |
| 47 | + | var | |
| 48 | + | aColor: TColor; | |
| 49 | + | begin | |
| 50 | + | aColor:=0; //トグルボックスによってForm1の背景色を設定する。 | |
| 51 | + | if ToggleBox1.Checked then aColor:=aColor + $0000FF; | |
| 52 | + | if ToggleBox2.Checked then aColor:=aColor + $00FF00; | |
| 53 | + | if ToggleBox3.Checked then aColor:=aColor + $FF0000; | |
| 54 | + | Color := aColor; //<Formular>.Colorプロパティの変更はフォームの再描画を引き起こす | |
| 55 | + | end; | |
| 56 | + | ``` | |
| 57 | + | ||
| 58 | + | ## 以下も参照のこと | |
| 59 | + | ||
| 60 | + | - [[doc:lcl/stdctrls/ttogglebox.html|TToggleBox doc]] | |
| 61 | + | - [[TButton/ja|TButton]] | |
| 62 | + | - [[TCheckBox/ja]] | |
| 63 | + | - [[TRadioButton/ja]] | |
| 64 | + | ||
| 65 | + | --- | |
| 66 | + | *From the Free Pascal wiki, page "TToggleBox/ja", as it stood on 2024-03-22 after a change by Ariben, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).* |
