Готуючись до практичних робіт, опрацюйте дані проекти.
Робота з формами, написами та кнопками
Спочатку задача про роботу з кількома формами для зразку. Використати на другій формі компонент RadioGroup, за допомогою якого буде змінюватися колір тла першої форми. На другій формі передбачити виведення заголовку першої форми. Інформацію про програму читати на третій формі.
Уважно працюйте із файлами Unit1, Unit2, Unit3. Передбачте підключення відповідних модулів
Unit1:
Uses Unit2, Unit3;
procedure TForm1.Button1Click(Sender: TObject);
begin
form2.Show;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
form3.ShowModal;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
close;
end;
Unit2:
implementation
uses Unit1;
procedure TForm2.Button1Click(Sender: TObject);
begin
if radioGroup1.ItemIndex=0 then form1.color:=clWhite;
if radioGroup1.ItemIndex=1 then form1.color:=clRed;
if radioGroup1.ItemIndex=2 then form1.color:=clBlue;
if radioGroup1.ItemIndex=3 then form1.color:=clGreen;
end;
procedure TForm2.Button2Click(Sender: TObject);
begin
Close;
end;
procedure TForm2.Button3Click(Sender: TObject);
begin
form2.Label2.Caption:=form1.Caption;
end;
Unit3:
implementation
uses Unit1;
procedure TForm3.Button1Click(Sender: TObject);
begin
Close;
end;
Проект 1. Довідник користувача ПК з використанням модального режиму для відображення форми.
Завдання передбачає виведення трактування комбінацій класів у окремі формі.
implementation
uses Unit2, Unit3, Unit4;
{$R *.lfm}
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
begin
Unit2.Form2.ShowModal;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Unit3.Form3.ShowModal;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Unit4.Form4.ShowModal;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
Form1.Close;
end;
Проект 2 "Довідник з фізики"
implementation
uses Unit2, Unit3, Unit4;
{$R *.lfm}
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
begin
Unit2.Form2.ShowModal;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Unit3.Form3.ShowModal;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Unit4.Form4.ShowModal;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
form1.Close;
end;
Проект 3 "Квартплата"
Введення даних про площу квартири та кількість осіб, що у ній проживають вводиться у вікнах введення даних InputBox. Результат виводиться на форму.
procedure TForm1.Button1Click(Sender: TObject);
var s,n,lift,smitya,remont,kvartpl:real;
begin
s:=StrToFloat(InputBox('Введення площі', 'Введіть площу квартири', ''));
n:=StrToFloat(InputBox('Введення даних про жильців', 'Введіть кількість осіб, що проживають у квартирі', ''));
lift:=0.36*s;
smitya:=0.12*s*n;
remont:=0.5*s;
kvartpl:=2.15*s;
s:=lift+remont+kvartpl+smitya;
Edit1.Text:=FloatToStr(s);
end;
Проект 4 "Чарівні кнопки."
Переконайтеся, як можна, переставляючи фрагменти слів, отримувати нові слова.
procedure TForm1.Button1Click(Sender: TObject);
begin
label4.Caption:=label3.Caption+label2.Caption;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
label4.Caption:=label2.Caption+label3.Caption;
end;
Проект 5 "Паркові доріжки"
procedure TForm1.Button1Click(Sender: TObject);
var a,b,c:real;
begin
a:=StrToFloat(InputBox('Введення довжин доріжок','Введіть довжину першої перпендикулярної доріжки',''));
b:=StrToFloat(InputBox('Введення довжин доріжок','Введіть довжину другої перпендикулярної доріжки',''));
c:=sqrt(a*a+b*b);
MessageDlg('Довжина найкоротшої доріжки ',FloatToStr(c), mtInformation, [mbOk], 0);
end;
Проек 6. Домашня бухгалтерія
procedure TForm1.Button1Click(Sender: TObject);
var d1,d2,d3,s:integer;
begin
d1:=StrToInt(InputBox('Введення доходу', 'Введіть дохід 1-го члена родини', ''));
d2:=StrToInt(InputBox('Введення доходу', 'Введіть дохід 2-го члена родини', ''));
d3:=StrToInt(InputBox('Введення доходу', 'Введіть дохід 3-го члена родини', ''));
s:=d1+d2+d3;
Edit6.Text:=IntToStr(s);
end;
procedure TForm1.Button2Click(Sender: TObject);
var kom, trans, telef, inter, td, s, zal:integer;
begin
kom:=StrToInt(Edit1.Text);
trans:=StrToInt(Edit2.Text);
telef:=StrToInt(Edit3.Text);
inter:=StrToInt(Edit4.Text);
td:=StrToInt(Edit5.Text);
s:=StrToInt(Edit6.Text);
zal:=s-(kom+trans+telef+inter+td);
MessageDlg(IntToStr(zal), mtInformation, [mbOK], 0);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Close;
end;
Проект 7. "Тривалість рейсу"
procedure TForm1.Button1Click(Sender: TObject);
var s1,s2,s3,v1,v2,v3,t,truv,god,hv: real;
begin
s1:=StrToFloat(Edit1.Text)*1000;
s2:=StrToFloat(Edit2.Text)*1000;
s3:=StrToFloat(Edit3.Text)*1000;
v1:=StrToFloat(Edit4.Text)*1000/60;
v2:=StrToFloat(Edit5.Text)*1000/60;
v3:=StrToFloat(Edit6.Text)*1000/60;
t:=StrToFloat(Edit7.Text);
truv:=s1/v1+s2/v2+s3/v3+2*t;
god:=int(truv/60);
hv:=truv-god*60;
MessageDlg('Загальна тривалість рейсу '+FloatToStr(god)+' годин '+floatToStr(hv)+' хвилин', mtInformation, [mbOK], 0);
end;
Створіть аналогічний проект, але організуйте введення даних у вікнах вводу даних.
Проект 8 "Туристична агенція"
procedure TForm1.Button1Click(Sender: TObject);
var kod,month, day, number: integer;
feeding:real;
begin
kod:=StrToInt(InputBox('Введення даних','Введіть персональний код',''));
month:=StrToInt(InputBox('Введення даних','Введіть місяць',''));
day:=StrToInt(InputBox('Введення даних','Введіть кількість днів',''));
number:=StrToInt(InputBox('Введення даних','Введіть кількість осіб',''));
feeding:=StrToFloat(InputBox('Введення даних','Введіть тип харчування',''));
Label7.Caption:=IntToStr(kod);
Label8.Caption:=IntToStr(month);
Label9.Caption:=IntToStr(day);
Label10.Caption:=IntToStr(number);
Label11.Caption:=FloatToStr(feeding);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Close;
end;
Проект 9 "Тест з біології"
Опрацюйте даний проект та додайте ще дві форми із тестовими запитаннями
procedure TForm1.Button1Click(Sender: TObject);
begin
messageDlg('Молодуць! У тебе хороші знання з біології!',mtinformation,[mbOK],0);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
messageDlg('Ти помилився. Спробуй дізнатися більше про кровоносну систему',mtinformation,[mbOK],0);
end;
Проект 10 "Сума цифр тризначного числа"
procedure TForm1.Button1Click(Sender: TObject);
var chislo,sotni,des,odun,s:integer;
begin
chislo:= StrToInt(InputBox('Введення числа','Введіть трицифрове число',''));
sotni:=chislo div 100;
chislo:=chislo-sotni*100;
des:=chislo div 10;
odun:=chislo-des*10;
s:=sotni+des+odun;
MessageDlg('Сума цифр даного числа ',IntToStr(s), mtInformation, [mbOk], 0);
end;
Проект 11 "Сімейний депозит"
procedure TForm1.Button1Click(Sender: TObject);
var p,a,s:real;
begin
p:=0.18;
a:=StrToFloat(Edit1.Text);
s:=a+a*p;
MessageDlg(FloatToStr(s)+' грн.', mtInformation, [mbOk], 0);
end;
Памятайте, що при опрацюванні текстових величин, які містять символи українського алфавіту, слід в розділ Uses додати модуль LCLProc. Тоді перед іменем кожної функції слід додавати UTF8.
Проект 1 "Вітальна листівка"
procedure TForm1.Button1Click(Sender: TObject);
var person,even,nik:string;
begin
person:=Edit1.Text;
Label5.Caption:=person;
Label5.Visible:=True;
Edit1.Visible:=False;
Label1.Visible:=False;
Label3.Visible:=False;
even:=Edit2.Text;
Edit2.Visible:=False;
Label6.Caption:=even;
nik:=Edit3.Text;
Edit3.Visible:=False;
Label7.Caption:=nik;
end;
Проект 2 "Нагадування"
procedure TForm1.Button1Click(Sender: TObject);
var den:string;
begin
den:=Edit1.Text;
MessageDlg('Увага! Сьогодні - '+den, mtInformation, [mbOK], 0 );
end;
Проек 3 "Утворення нових слів"
procedure TForm1.Button1Click(Sender: TObject);
var slovo,s1,s2:string;
begin
slovo:=InputBox('Введення слова', 'Введіть дане слов','' );
s1:=UTF8copy(slovo, 3, 5);
s2:=UTF8copy(slovo, 5, 1)+ UTF8copy(slovo, 4, 1)+ UTF8copy(slovo, 6, 2)+UTF8copy(slovo, 2, 1)+UTF8copy(slovo, 8, 4);
Label1.Visible:=True;
Label2.Caption:=s1;
Label3.Caption:=s2;
end;
Проект 4 "Ініціали"
procedure TForm1.Button1Click(Sender: TObject);
var pr,im,pb,prin:string;
begin
pr:=Edit1.Text;
im:=Edit2.Text;
pb:=Edit3.Text;
prin:=pr+' '+UTF8copy(im, 1, 1)+'.'+UTF8copy(pb,1,1)+'.';
Edit4.Text:=prin;
end;
Проект 5 "Шифрування"
procedure TForm1.Button1Click(Sender: TObject);
var slovo:string;
begin
slovo:=InputBox('Введення слова', 'Введіть довільне слово з 5 букв', '');
slovo:=UTF8copy(slovo, 1, 1)+UTF8copy(slovo, 1, 1)+UTF8copy(slovo, 2, 1)+UTF8copy(slovo, 2, 1)+UTF8copy(slovo, 3, 1)+UTF8copy(slovo, 3, 1)+UTF8copy(slovo, 4, 1)+UTF8copy(slovo, 4, 1)+UTF8copy(slovo, 5, 1)+UTF8copy(slovo, 5, 1);
Edit1.Text:=slovo;
end;
Проект 6 "Дата народження"
procedure TForm1.Button1Click(Sender: TObject);
var den,mis,rik, skor:string;
begin
den:=Edit1.Text;
mis:=Edit2.Text;
rik:=Edit3.Text;
skor:=den+'.'+mis+'.'+rik;
Edit4.Text:=skor;
Image1.Visible:=true;
end;
Проект 7 "Нові слова"
procedure TForm1.Button1Click(Sender: TObject);
var t1,t2,t3,t4,n1,n2,n3,n4:string;
begin
t1:=Edit1.Text;
t2:=Edit2.Text;
t3:=Edit3.Text;
t4:=Edit4.Text;
n1:=UTF8copy(t1,4,1)+UTF8copy(t1,10,2)+UTF8copy(t1,7,1)+UTF8copy(t1,3,1)+UTF8copy(t1,9,1);
n2:=UTF8copy(t2,9,1)+ UTF8copy(t2,1,1)+ UTF8copy(t2,6,1)+ UTF8copy(t2,8,1)+UTF8copy(t2,7,1)+UTF8copy(t2,9,1);
n3:=UTF8copy(t3,3,3)+ UTF8copy(t3,2,2)+UTF8copy(t3,2,1);
n4:=UTF8copy(t4,7,2)+UTF8copy(t4,5,1)+UTF8copy(t4,4,1)+UTF8copy(t4,3,1);
Edit5.Text:=n1;
Edit6.Text:=n2;
Edit7.Text:=n3;
Edit8.Text:=n4;
end;
Проект 8 "Калькулятор"
procedure TForm1.Button1Click(Sender: TObject);
var a,b,c:real;
begin
a:=StrToFloat(Edit1.Text);
b:=StrToFloat(Edit2.Text);
c:=a+b;
Label3.Caption:=FloatToStr(c);
end;
procedure TForm1.Button2Click(Sender: TObject);
var a,b,c:real;
begin
a:=StrToFloat(Edit1.Text);
b:=StrToFloat(Edit2.Text);
c:=a-b;
Label3.Caption:=FloatToStr(c);
end;
procedure TForm1.Button3Click(Sender: TObject);
var a,b,c:real;
begin
a:=StrToFloat(Edit1.Text);
b:=StrToFloat(Edit2.Text);
c:=a*b;
Label3.Caption:=FloatToStr(c);
end;
procedure TForm1.Button4Click(Sender: TObject);
var a,b,c:real;
begin
a:=StrToFloat(Edit1.Text);
b:=StrToFloat(Edit2.Text);
c:=a/b;
Label3.Caption:=FloatToStr(c);
end;
Проект 9 "Розрядні одиниці"
procedure TForm1.Button1Click(Sender: TObject);
var chislo,t,s,d,o:integer;
begin
chislo:=StrToInt(Edit1.Text);
t:=chislo div 1000;
chislo:=chislo-t*1000;
s:=chislo div 100;
chislo:=chislo-s*100;
d:=chislo div 10;
o:=chislo-d*10;
Edit2.Text:=IntToStr(t)+'*1000+'+IntToStr(s)+'*100+'+IntToStr(d)+'*10+'+IntToStr(o);
end;