Sign in Join
Wiki copytemporary

TToggleBox/ru: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

Title: TToggleBox/ru

OldNewLine
1+**TToggleBox** ![](/wiki-images/1/15/Ttogglebox.png) представляет собой кнопку с надписью, имеющую 2 логических состояния - *нажата* или *не нажата*. Перевод из одного состояния в другое осуществляется одиночным щелчком мыши.
2+
3+Вы можете проверить статус кнопки (активна или не активна) в любом месте в программе с помощью такой команды **`Status := <ToggleBox>.Checked;`**. Вы можете использовать значение свойства *Checked* как обычное [[Boolean/ru|логическое]] значение. Также допустимо и выражение присваивания **`<ToggleBox>.Checked := True;`**.
4+
5+### Простой пример
6+
7+- Создайте новое приложение и разместите на форме три элемента **TToggleBox**.
8+- Измените свойства *Caption* этих элементов с ToggleBox1...3 на *Red*, *Green* и *Blue*, а имена (свойство *Name*) на *tbRed*, *tbGreen* и *tbBlue*, соответственно.
9+- Добавьте на форму кнопку [[TButton/ru|TButton]] и измените её свойство *Caption* на *Paint new*, а имя на *btnPaint*.
10+- Создайте обработчик события *OnClick* для кнопки: для этого перейдите на вкладку *Events* в окне Инспектора Объектов, выберите событие *OnClick* и нажмите кнопку \[...\] или просто дважды щелкните по этому полю.
11+- Добавьте следующий код в обработчик события кнопки *btnPaint*:
12+
13+``` pascal
14+procedure TForm1.btnPaintClick(Sender: TObject);
15+var
16+ aColor: TColor;
17+begin
18+ aColor:=0; //Background color of Form1 is set according to the Toggleboxes
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; //the change of the property <Formular>.Color causes a redrawing of the form
23+end;
24+```
25+
26+- Запустите программу. Должно выглядеть примерно так:
27+
28+![](/wiki-images/8/87/ToggleBoxExample1.png) -\> ![](/wiki-images/a/a7/ToggleBoxExample2.png)
29+
30+### Использование события элемента TToggleBox
31+
32+Отличие от предыдущего примера заключается в том, что цвет формы будет изменяться не с помощью щелчка по кнопке, а с помощью щелчков по одному из элементов **TToggleBox**.
33+
34+Вы можете модифицировать предыдущий пример, удалив кнопку *btnPaint* и её обработчик события *OnClick* в исходном коде. Но вы легко можете создать и новый пример:
35+
36+- Создайте новое приложение и разместите на форме три элемента **TToggleBox**.
37+- Измените свойства *Caption* этих элементов с ToggleBox1...3 на *Red*, *Green* и *Blue*, а имена (свойство *Name*) на *tbRed*, *tbGreen* и *tbBlue*, соответственно.
38+- Создайте обработчик события *OnChange* для одного из элементов **ToggleBox**, например, **`TForm1.tbRedChange(Sender: TObject);`**, а также подключите его к другим элементам **ToggleBox**:
39+ - Дважды щелкните по элементу *tbRed* или выберите элемент *tbRed* на форме и перейдите на вкладку *Events* в окне Инспектора Объектов, затем выберите событие *OnClick* и нажмите кнопку \[...\].
40+ - В результате будет создана процедура *tbRedChange*.
41+ - Теперь выберите на форме элемент *tbGreen*.
42+ - Перейдите на вкладку *Events* в окне Инспектора Объектов, выберите событие *OnChange* и в выпадающем списке укажите событие *tbRedChange*.
43+ - После этого повторите те же действия для элемента *tbBlue*.
44+- В результате получится обработчик события *OnChange* для всех элементов **ToggleBox**. Цвет фона формы будет меняться в соответствии со значением свойства *\<ToggleBox\>.Checked* выбранного элемента:
45+
46+``` pascal
47+procedure TForm1.tbRedChange(Sender: TObject);
48+var
49+ aColor: TColor;
50+begin
51+ aColor:=0; //Background color of Form1 is set according to the Toggleboxes
52+ if ToggleBox1.Checked then aColor:=aColor + $0000FF;
53+ if ToggleBox2.Checked then aColor:=aColor + $00FF00;
54+ if ToggleBox3.Checked then aColor:=aColor + $FF0000;
55+ Color := aColor; //the change of the property <Formular>.Color causes a redrawing of the form
56+end;
57+```
58+
59+## См. также
60+
61+- [[doc:lcl/stdctrls/ttogglebox.html|Документация по TToggleBox]]
62+- [[TButton/ru|TButton]]
63+- [[TCheckBox/ru|TCheckBox]]
64+- [[TRadioButton/ru|TRadioButton]]
65+
66+---
67+*From the Free Pascal wiki, page "TToggleBox/ru", as it stood on 2020-03-02 after a change by Trev, 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).*

Back to history