Разработка приложения, состоящего из нескольких форм
Постановка задачи:
Разработать приложение, состоящее из нескольких форм и поддерживающее визуальное изменение данных.
Задание: Взять за основу задание к лабораторной работе №7. Добавить к проекту дополнительную форму, на которой реализовать смешивание цветов. Выбранный цвет необходимо применить к одной из компонент главной формы.
Текст программы:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Math, StdCtrls, mathfunc;
type
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
lbl1: TLabel;
lbl2: TLabel;
lbl3: TLabel;
lbl4: TLabel;
Button2: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Unit2;
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.Text:='0,1';
Edit2.Text:='1';
Edit3.Text:='8';
Edit4.Text:=FloatToStr((1-0.1)/8);
Memo1.Clear;
Memo1.Lines.Add('Лабораторная работа №9');
end;
procedure TForm1.Button1Click(Sender: TObject);
var
x,x1,x2,x2n,h,S,Y,deltas : extended;
n,nf,i : Integer;
Begin
x1:=StrToFloat(edit1.Text);
x2:=StrToFloat(edit2.Text);
If x2<x1 Then
Begin
x:=x1;
x1:=x2;
x2:=x;
End;
n:=StrToInt(edit3.Text);
h:=(x2-x1)/n;
edit4.Text:=FloatToStr(h);
x:=x1;
Repeat
//Вычисление S
S:=x;
nf:=1;
x2n:=x;
For i:=1 To n Do
Begin
nf:=nf*2*i*(2*i+1); // (2*n+1)!
x2n:=x2n*x*x; // x^(2*n+1)
deltas:=x2n/nf;
S:=S+deltas;
End;
//Подключение модуля mathfunc
y:=yx(x);
Memo1.Lines.Add('S = ' + FloatToStrF(S, ffFixed,12,10)+ ' Y = '+
FloatToStrF(Y, ffFixed,12,10));
x:=x+h;
Until x>x2;
End;
procedure TForm1.Button2Click(Sender: TObject);
begin
Form2.ShowModal();
end;
end.
unit mathfunc;
interface
function Yx(x:Extended):extended;
implementation
function Yx(x:Extended):extended;
begin
Result:=(exp(x)-exp(-x))/2;
end;
end.
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Buttons;
type
TForm2 = class(TForm)
ScrollBar1: TScrollBar;
ScrollBar2: TScrollBar;
ScrollBar3: TScrollBar;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
RadioGroup1: TRadioGroup;
Button1: TButton;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Panel1: TPanel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Panel2: TPanel;
CheckBox1: TCheckBox;
CheckBox2: TCheckBox;
CheckBox3: TCheckBox;
BitBtn1: TBitBtn;
procedure ScrollBar1Change(Sender: TObject);
procedure ScrollBar2Change(Sender: TObject);
procedure ScrollBar3Change(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
procedure CheckBox2Click(Sender: TObject);
procedure CheckBox3Click(Sender: TObject);
procedure RadioGroup1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
uses Unit1;
{$R *.dfm}
procedure TForm2.ScrollBar1Change(Sender: TObject);
begin
Label7.font.color:=RGB(ScrollBar1.Position,0,0);
Label4.caption:=inttostr(ScrollBar1.Position);
end;
procedure TForm2.ScrollBar2Change(Sender: TObject);
begin
Label8.font.color:=RGB(0,ScrollBar2.Position,0);
Label5.caption:=inttostr(ScrollBar2.Position);
end;
procedure TForm2.ScrollBar3Change(Sender: TObject);
begin
Label9.font.color:=RGB(0,0,ScrollBar3.Position);
Label6.caption:=inttostr(ScrollBar3.Position);
end;
procedure TForm2.FormCreate(Sender: TObject);
begin
Label4.caption:=inttostr(ScrollBar1.Position);
Label5.caption:=inttostr(ScrollBar2.Position);
Label6.caption:=inttostr(ScrollBar3.Position);
ScrollBar1.Hide;
ScrollBar2.Hide;
ScrollBar3.Hide;
Panel1.Hide;
Label1.hide;
Label2.hide;
Label3.hide;
Label4.hide;
Label5.hide;
Label6.hide;
end;
procedure TForm2.Button1Click(Sender: TObject);
begin
Form1.color:=RGB(ScrollBar1.Position,ScrollBar2.Position,ScrollBar3.Position);
end;
procedure TForm2.CheckBox1Click(Sender: TObject);
begin
if CheckBox1.Checked then
begin
ScrollBar1.show;
Label1.show;
Label4.show;
end
else
begin
ScrollBar1.hide;
Label1.hide;
Label4.hide;
end;
end;
procedure TForm2.CheckBox2Click(Sender: TObject);
begin
if CheckBox2.Checked then
begin
ScrollBar2.show;
Label2.show;
Label5.show;
end
else
begin
ScrollBar2.hide;
Label2.hide;
Label5.hide;
end;
end;
procedure TForm2.CheckBox3Click(Sender: TObject);
begin
if CheckBox3.Checked then
begin
ScrollBar3.show;
Label3.show;
Label6.show;
end
else
begin
ScrollBar3.hide;
Label3.hide;
Label6.hide;
end;
end;
procedure TForm2.RadioGroup1Click(Sender: TObject);
begin
case RadioGroup1.ItemIndex of
0: Panel1.Show;
1: Panel1.Hide;
end;
end;
end.
Результат работы программы:
1. При запуске программы появляется следующее окно:
2. После нажатия кнопки «Управление цветом» появляется дополнительная форма «Form2»:
3. После выбора определенных параметров цвета в дополнительной форме «Form2»:
4. После нажатия кнопки изменить цвет в дополнительной форме «Form2» изменяется цвет главной формы:
Выводы: изучили основные свойства и методы, связанные с созданием и активизацией форм.