Пример 1. Разработать проект, содержащий компоненты RadioGroup и CheckGroup
Вариант проекта:
1. Интерфейс проекта
.
2. Программный код проекта
procedure TForm1.RadioGroup1Click(Sender: TObject); // событие onClick группы RadioGroup , включенной может быть лишь одна такая радиокнопка
begin
case RadioGroup1.ItemIndex of
0 : begin
Form1.Width := 430;
form1.image5.Show;
form1.image3.Hide;
form1.image4.Hide;
label1.caption:= ' Я - Джек';
end;
1: begin
Form1.Width := 430;
form1.image3.Show;
form1.image4.Hide;
form1.image5.Hide;
label1.caption:= ' Я - Ник';
end;
2: begin
Form1.Width := 430;
form1.image3.Hide;
form1.image4.Show;
form1.image5.Hide;
label1.caption:= ' Я - Дэн';
end;
3: begin
Form1.Width := 290;
Form1.Height:=220;
form1.image3.Hide;
form1.image4.Hide;
form1.image5.Hide;
label1.caption:= ' ';
RadioGroup1.ItemIndex := -1; // oбнуляет RadioGroup
end;
end; //case
end;
|
procedure TForm1.CheckGroup1ItemClick(Sender: TObject; Index: integer); //событие выбора флажка в группе
begin
if checkgroup1.checked[0] then begin
form1.caption:='CheckGroup1';
Form1.Color:= clTeal
end
else begin form1.caption:='RadioGroup_CheckGroup';
Form1.Color:= clTeal;
end;
if checkgroup1.checked[1] then Form1.Color:= clolive else Form1.Color:= clTeal;
if checkgroup1.checked[2] then
begin
Form1.Width := Form1.Width + 130 ;
Form1.Height := Form1.Height + 100;
end
else
begin
Form1.Width := 290;
Form1.Height:=220;
end;
end;
|
procedure TForm1.FormCreate(Sender: TObject); // устанавливаем исходные значения свойств формы
begin
Form1.Color:= clTeal;
Form1.Width := 290 ;
Form1.Height:= 220;
form1.image5.Hide;
form1.image3.Hide;
form1.image4.Hide;
label1.caption:= ' ';
end;
|
Пример 2. Разработка проекта Калькулятор с четырьмя формами в четырех вариантах с использованием компонентов RadioGroup, ComboBox, CheckDroup.
1. Если в проекте используется несколько экранных форм, то:
в программном коде следует задать команду uses, с помощью которой подключаются программные модули других форм;
после команды uses подают список имен файлов экранных форм, которые будут подключены.
Например, в нашем примере будут использованы формы, сохраненные в файлах Unit2, Unit3, Unit4 то в программном коде Form1 указывают:
...
var
Form1: TForm1;
var a, b, s, r, z, d: real;
implementation
uses unit2, Unit3, Unit4; // первая форма
{$R *.lfm}
...
|
2. Если программа содержит несколько форм, то по умолчанию отображается только главная форма. Для отображения других форм проекта используют метод Show или ShowModal, например: Form2.ShowModal;
Отличие этих методов заключается в том, что:
первый вызывают для отображения формы в обычном режиме, а второй - в так называемом модальном режиме: после отображения указанной формы все другие формы будут недоступны;
чтобы перейти к другой форме, необходимо закрыть текущую форму.
|
Для объекта форма чаще всего используют следующие методы:
- Show- отобразить форму в обычном режиме;
- ShowModal- отобразить форму в модальном режиме;
- Hide- сделать форму невидимой (скрыть ее);
- Close- закрыть форму.
|
Некоторые методы можно вызывать для различных объектов, а другие - только для объектов определенного типа. Например, методы Show и Hide можно вызвать для формы, надписи, кнопки и других объектов, а метод Close-только для формы.
Интерфейс и варианты программного кода проекта.
var
Form1: TForm1;
var a, b, s, r, z, d: real; i: integer; // объявление глобальных переменных
implementation
uses unit2, Unit3, Unit4; // первая форма
{$R *.lfm}
procedure TForm1.Button5Click(Sender: TObject);
begin
form2.Show; form1.Hide;
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
form3.Show; form1.Hide;
end;
procedure TForm1.Button7Click(Sender: TObject);
begin
form4.Show; form1.Hide;
end;
|
...
procedure TForm1.Button1Click(Sender: TObject);
begin
a := strtofloat(edit1.text); b := strtofloat(edit2.text);
s := a + b ; label4.Caption := floattostr(s);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
a := strtofloat(edit1.text); b := strtofloat(edit2.text);
r := a - b ; label4.Caption := floattostr(r);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
a := strtofloat(edit1.text); b := strtofloat(edit2.text);
z := a * b ; label4.Caption := floattostr(z);
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
a := strtofloat(edit1.text); b := strtofloat(edit2.text);
if b<>0 then begin d := a / b ; label4.Caption := floattostrF(d,ffFixed,6,3);end
else showmessage('деление на ноль недопустимо');
end;
|
var
Form2: TForm2;
implementation
uses unit1; // вторая форма
{$R *.lfm}
...
procedure TForm2.Button1Click(Sender: TObject);
begin
for i:=0 to 3 do checkgroup1.checked[i] :=false;
label4.caption:=''; label5.caption:='';
label6.caption:=''; label7.caption:='';
edit1.Enabled:=true; edit1.text:='';
edit2.Enabled:=true; edit2.text:='';
edit1.Text:= inputbox(' ввод данных','a=','');
edit2.Text:= inputbox('ввод данных ','b=','');
a:=strtofloat(edit1.text);
b:=strtofloat(edit2.text);
end;
|
procedure TForm2.CheckGroup1ItemClick(Sender: TObject; Index: integer);
begin
if checkgroup1.checked[0] then
begin
s:= a + b ; label4.caption:= floattostr(s);
end
else label4.caption:='';
if checkgroup1.checked[1] then
begin
r := a - b ; label5.Caption := floattostr(r);
end
else label5.caption:='';
if checkgroup1.checked[2] then
begin
z := a *b ; label6.Caption := floattostr(z);
end
else label6.caption:='';
if checkgroup1.checked[3] then
begin
if b<>0 then
begin d := a / b ; label7.Caption := floattostrF(d,ffFixed,6,3);end
else showmessage('деление на ноль недопустимо'); end
else label7.caption:='';
end;
procedure TForm2.Button2Click(Sender: TObject);
begin
form1.show; form2.Hide;
end;
|
var
Form3: TForm3;
implementation
uses unit1; // третья форма
{$R *.lfm}
...
procedure TForm3.Button1Click(Sender: TObject);
begin
radiogroup1.itemindex:=-1;
radiogroup2.itemindex:=-1;
label4.caption:='';
edit1.Enabled:=true; edit1.text:='';
edit2.Enabled:=true; edit2.text:='';
edit1.Text:= inputbox(' ввод данных','a=','');
edit2.Text:= inputbox('ввод данных ','b=','');
a:=strtofloat(edit1.text);b:=strtofloat(edit2.text);
end;
procedure TForm3.Button2Click(Sender: TObject);
begin
form1.Show; form3.Hide;
end;
|
Вариант 1
procedure TForm3.RadioGroup1Click(Sender: TObject);
begin
if radiogroup1.itemindex = 0 then
begin s:= a + b ; label4.caption:= floattostr(s); end ;
if radiogroup1.itemindex = 1 then
begin r:= a - b ; label4.caption:= floattostr(r); end;
if radiogroup1.itemindex = 2 then
begin z:= a * b ; label4.caption:= floattostr(z);end;
if radiogroup1.itemindex = 3 then
begin
if b<>0 then begin d := a / b ; label4.Caption := floattostrF(d,ffFixed,6,3);end
else showmessage('деление на ноль недопустимо');
end ;
end;
Вариант 2
procedure TForm3.RadioGroup2Click(Sender: TObject);
begin
case RadioGroup2.ItemIndex of
0 : begin s:= a + b ; label4.caption:= floattostr(s); end;
1: begin
r:= a - b ; label4.caption:= floattostr(r);
end;
2: begin
z:= a * b ; label4.caption:= floattostr(z);
end ;
3: begin
if b<>0 then begin d := a / b ; label4.Caption := floattostrF(d,ffFixed,6,3);end
else showmessage('деление на ноль недопустимо'); end ;
end; //case
end;
|
var
Form4: TForm4;
implementation
uses unit1; // четвертая форма
{$R *.lfm}
...
procedure TForm4.Button1Click(Sender: TObject);
begin
form1.Show; form4.hide;
end
|
procedure TForm4.ComboBox1Change(Sender: TObject);
begin
a := strtofloat(edit1.text); b := strtofloat(edit2.text);
if combobox1.text = 'сложение' then begin s := a + b ; label4.Caption := floattostr(s);end
else if combobox1.text = 'вычитание' then begin r := a - b ; label4.Caption := floattostr(r);end
else if combobox1.text = 'умножение' then begin z := a * b ; label4.Caption := floattostr(z);end
else if combobox1.text = 'деление' then
if b<>0 then begin d := a / b ; label4.Caption := floattostrF(d,ffFixed,6,3); end
else showmessage('деление на ноль недопустимо');
end;
|