Sign in Join
Wiki copytemporary

TRadioGroup/ru: what changed

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

Title: TRadioGroup/ru

OldNewLine
1+**TRadioGroup** ![](/wiki-images/e/e8/Tradiogroup.png) является элементом управления с взаимосвязанными, но взаимоисключающими переключателями (элементами [[TRadioButton/ru|TRadioButton]]), в котором требуется выбрать один из нескольких вариантов. Данный элемент выглядит подобно элементу [[TGroupBox/ru|TGroupBox]] с интегрированными в него элементами [[TRadioButton/ru|TRadioButton]].
2+
3+## Использование
4+
5+Для использования элемента **TRadioGroup** на [[TForm/ru|форме]] вы можете просто выбрать его на вкладке [[Standard tab/ru|Standard]] [[Component Palette/ru|палитры компонентов]] и поместить на форму щелчком мыши.
6+
7+### Небольшой пример
8+
9+В данном примере будут случайным образом рисоваться геометрические фигуры в зависимости от выбранного элемента **TRadioGroup**. Элемент с именем *RadioGroup1* определяет тип фигуры, а элемент *RadioGroup2* их количество.
10+
11+- создайте новое приложение и поместите на форму два элемента **TRadioGroup**
12+- в Инспекторе Объектов измените свойство *Name* элемента *RadioGroup1* на *rgShape*, а элемента *RadioGroup2* на *rgCount*
13+- измените свойство *Caption* элемента *rgShape* на *Shape*, а элемента *rgCount* на *Count*
14+- добавьте элементы [[TRadioButton/ru|TRadioButton]] для элемента *rgShape*:
15+ - выберите в Инспекторе Объектов свойство *Items* элемента *rgShape*
16+ - щелкните по кнопке \[...\]; откроется диалоговое окно ввода строк
17+ - напишите одну за другой строки *Lines Rectangles Ellipses*, а когда закончите нажмите кнопку *OK*
18+- добавьте аналогичным способом переключатели для элемента *rgCount* (напишите одну за другой строки): *1 5 10 20 50 100*
19+- установите первые переключатели в положение *выбран* с помощью свойства *ItemIndex* элементов *rgShape* и *rgCount* (измените значение с *-1* на *0*)
20+- создайте обработчик события *OnClick* элемента *rgShape* с помощью двойного щелчка мыши по элементу *rgShape*
21+- также используйте этот обработчик события для элемента *rgCount*:
22+ - в Инспекторе Объектов выберите элемент *rgCount*
23+ - теперь выберите вкладку *Events*
24+ - перейдите к событию *OnClick* и выберите из выпадающего списка событие *rgShapeClick*
25+- всякий раз при щелчках по элементам *rgShape* или *rgCount* окно формы будет перерисовываться. Для этого напишите следующий код в обработчик события:
26+
27+``` pascal
28+procedure TForm1.rgShapeClick(Sender: TObject);
29+begin
30+ Repaint;
31+end;
32+```
33+
34+- фигуры будут отрисованы при перерисовке формы:
35+ - выберите в Инспекторе Объектов форму *Form1*
36+ - перейдите на вкладку *Events*
37+ - щелкните по кнопке \[...\], расположенной рядом с событием *OnPaint*
38+ - теперь обработчик события создан и вам необходимо ввести следующий код:
39+
40+``` pascal
41+procedure TForm1.FormPaint(Sender: TObject);
42+var
43+ i: Integer;
44+begin
45+ if TryStrToInt(rgCount.Items[rgCount.ItemIndex], i) then
46+ for i:=1 to i do begin
47+ Canvas.Pen.Color:=Random($1000000);
48+ Canvas.Brush.Color:=Random($1000000);
49+ case rgShape.Items[rgShape.ItemIndex] of
50+ 'Lines': Canvas.Line(Random(ClientWidth), Random(ClientHeight), Random(ClientWidth), Random(ClientHeight));
51+ 'Rectangles': Canvas.Rectangle(Random(ClientWidth), Random(ClientHeight), Random(ClientWidth), Random(ClientHeight));
52+ 'Ellipses': Canvas.Ellipse(Random(ClientWidth), Random(ClientHeight), Random(ClientWidth), Random(ClientHeight));
53+ end;
54+ end;
55+end;
56+```
57+
58+- запустите программу. Должно выглядеть так:
59+
60+![](/wiki-images/6/6a/ExampleTRadioGroup.png)
61+
62+## См. также
63+
64+- [[doc:lcl/extctrls/tradiogroup.html|Документация по TRadioGroup]]
65+- [[TRadioButton/ru|TRadioButton]]
66+- [[TGroupBox/ru|TGroupBox]]
67+
68+---
69+*From the Free Pascal wiki, page "TRadioGroup/ru", as it stood on 2020-03-01 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