Компонент RadioButton

 

Переключатели с зависимой фиксацией – компонент RadioButton, также называется кнопкой выбора. Данный компонент представляет собой надпись с кругом слева, в который можно поставить точку. Обычно кнопки выбора располагаются по отдельным группам. Выбор переключателя является взаимоисключающим, т.е. при выборе одного переключателя все остальные сбрасываются (становятся невыбранными). Для формирования групп переключателей используются такие компоненты как форма Form, панельPanel, группа GroupBox и специализированный контейнер RadioGroup.

Для того, чтобы объединить переключатели в группу, достаточно положить их на соответствующий компонент. При использовании компонента RadioGroup этого делать не нужно, чтобы добавить или удалить элемент, необходимо использовать свойство Items типа TStrings в Инспекторе объектов или программно. Данное свойство содержит строки, которые отображаются как названия переключателя. Обращение в программе к конкретному элементу доступно через свойство ItemIndex типа Integer, нумерация которого начинается с нуля. Рекомендуется установить начальные значения для данного компонента, например, выбрав нужный переключатель в методе формы onShow, иначе ни один из переключателей не будет выбран до того, как пользователь не установит его, а свойство ItemIndex будет равно -1.

Для управления количеством столбцов используется свойство Columns, имеющее по умолчанию значение 1.

Пример 16. Рассчитать значения функции на интервале [а,b] с шагом h. В зависимости от выбора пользователя, результаты расчета поместить в таблицу, нарисовать график или записать в файл. (продолжение примера 15)

Преобразуйте форму, разработанную для примера 15 в форму, представленную на рисунке 33 (под компонентом Chart находится компонент StringGrid).

 

Рисунок 33 - Внешний вид приложения

 

В начале работы приложения на форме не должно быть видно окно результатов расчета (ни график, ни таблица) и выбрана первая позиция в компоненте RadioGroup, поэтому добавим метод формы OnShow следующим кодом:

 

procedure TForm1.FormShow(Sender: TObject);

begin

// начало такое же, как и в примере 15

Form1.StringGrid1.Visible:=false;

Form1.Chart1.Visible:=false;

Form1.RadioGroup1.ItemIndex:=0;

end;

Программа расчета с учетом всех обновлений выглядит так:

 

procedure Clear; // процедура очистки

var

i:integer;

begin

for i:=1 to Form1.StringGrid1.RowCount-1 do

begin

Form1.StringGrid1.Cells[0,i]:='';

Form1.StringGrid1.Cells[1,i]:='';

end;

Form1.Chart1.SeriesList.Series[0].Clear;

end;

 

procedure TForm1.BitBtn1Click(Sender: TObject);

var

a,b,y:real;

i:integer;

Raschet:TextFile;

begin

a:=StrToFloat(Form1.LabeledEdit1.Text);

b:=StrToFloat(Form1.LabeledEdit2.Text);

if a>=b then

begin

Mr:=MessageDlg('Данные введены неверно.

Ввести заново?', mtConfirmation,

[mbYes, mbNo,mbCancel],0);

if Mr=mrYes then

Form1.FormShow(Sender);

exit;

end;

h:=StrToFloat(InputBox('Ввод шага

расчета','Введите шаг','1'));

Form1.StringGrid1.Cells[0,0]:=' x ';

Form1.StringGrid1.Cells[1,0]:=' y ';

i:=1;

Clear;

 

 

case Form1.RadioGroup1.ItemIndex of

0:begin

Form1.StringGrid1.Visible:=true;

Form1.Chart1.Visible:=false;

end;

1:begin

Form1.StringGrid1.Visible:=false;

Form1.Chart1.Visible:=true;

end;

2:begin

Form1.StringGrid1.Visible:=false;

Form1.Chart1.Visible:=false;

if Form1.SaveDialog1.Execute then

begin

AssignFile(Raschet,

Form1.SaveDialog1.FileName);

Rewrite(Raschet);

end;

end;

end;

while a<=b do

begin

y:=a*a;

case Form1.RadioGroup1.ItemIndex of

0:

begin

if i>Form1.StringGrid1.RowCount

then Form1.StringGrid1.RowCount:=

Form1.StringGrid1.RowCount+1;

Form1.StringGrid1.Cells[0,i]:=

FloatToStr(a);

Form1.StringGrid1.Cells[1,i]:=

FloatToStr(y);

end;

1: Form1.Chart1.SeriesList.Series[0].

AddXY(a,y,'',clRed);

2: WriteLn(Raschet,FloatToStr(a)+

' '+FloatToStr(y));

end;

a:=a+h;

inc(i);

end;

if Form1.RadioGroup1.ItemIndex=2

then CloseFile(Raschet);

end;

 








Дата добавления: 2015-04-10; просмотров: 1319;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.008 сек.