Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Создание программы с несколькими формами и средства управления ими

 

 

Цель: Изучить методы, связанные с созданием программы, в которой используется несколько форм.

Постановка задачи:

1. Создать главную форму, содержащую название работы, ФИО исполнителей, кнопки изменения цвета формы и вызова другой формы.

2. Создать вторую форму для задания параметров, необходимых для вычисления определенного интеграла. На вторую форму поместить кнопку, при нажатии которой вычисляется интеграл и абсолютная погрешность его вычисления, а затем открывается третья форма, содержащая полученный результат.

3. Каждая из форм должна содержать кнопку, при нажатии которой можно вернуться назад в предыдущую форму.

Интерфейс программы, реализующей задания по пп.1-3, показан на фиг.1-4.

 

Фиг.1. Form1.

Фиг.2. FORM2.

Фиг.3. Form3.

Фиг.4. Form4.

 

Программные модули, реализующие сформулированную задачу, приведены ниже.

 

unit DemoMultiForm;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls,

Forms, Dialogs, StdCtrls, ComCtrls;

type

TForm1 = class(TForm)

Label1: TLabel;

Button1: TButton;

Button2: TButton;

Button3: TButton;

Button4: TButton;

StatusBar1: TStatusBar;

ColorDialog1: TColorDialog;

procedure Button2Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

Form1: TForm1;

implementation

uses lab3_2b;

var

q: integer;

{$R *.DFM}

 

procedure TForm1.Button2Click(Sender: TObject);

begin

q:= Form1.Color;

ColorDialog1.Execute;

Form1.Color:= ColorDialog1.Color;

Label1.Font.Color:= Form1.Color + 10000;

Button3.Enabled:= True;

end;

 

procedure TForm1.Button4Click(Sender: TObject);

begin

Close;

end;

 

procedure TForm1.Button3Click(Sender: TObject);

begin

Form1.Color:= q;

end;

 

procedure TForm1.Button1Click(Sender: TObject);

begin

Form2.ShowModal;

end;

end.

 

 

unit lab3_2b;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls,

Forms, Dialogs, StdCtrls, ExtCtrls, Math;

type

TForm2 = class(TForm)

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Button1: TButton;

Image1: TImage;

Label4: TLabel;

Button2: TButton;

Button3: TButton;

procedure Button1Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Edit1KeyPress(Sender: TObject; var Key: Char);

procedure Edit2KeyPress(Sender: TObject; var Key: Char);

procedure Edit3KeyPress(Sender: TObject; var Key: Char);

procedure Edit3Exit(Sender: TObject);

procedure Edit2Exit(Sender: TObject);

procedure Edit1Exit(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

Form2: TForm2;

implementation

uses lab3_3b;

var

q, w, e, r, t, y, u, i: extended;

{$R *.DFM}

 

procedure TForm2.Button1Click(Sender: TObject);

begin

Close;

end;

 

procedure TForm2.Button3Click(Sender: TObject);

begin

Halt;

end;

 

procedure TForm2.Button2Click(Sender: TObject);

begin

q:= StrToFloat(Edit1.Text); //nijnii predel

w:= StrToFloat(Edit2.Text); //verxnii predel

e:= StrToFloat(Edit3.Text); //4islo razbienii

 

if e =0 then

begin

ShowMessage('Division by ZERO detected!!! The program

will be closed!!!');

Halt;

end;

 

if q <=0 then

begin

ShowMessage('Division by ZERO detected!!! The program

will be closed!!!');

Halt;

end;

 

if w <=0 then

begin

ShowMessage('Division by ZERO detected!!! The program

will be closed!!!');

Halt;

end;

 

if q =1 then

begin

ShowMessage('Division by ZERO detected!!! The program

will be closed!!!');

Halt;

end;

 

if w =1 then

begin

ShowMessage('Division by ZERO detected!!! The program

will be closed!!!');

Halt;

end;

 

if q >w then

begin

ShowMessage('Please, change the number''s position and

restart the program!!!');

ShowMessage('The value of the left border MUST be bigger

than the value of the right one!!!');

Halt;

end;

 

r:= (w - q)/e; //6ag

i:= 0;

t:= 0;

u:= w;

 

while i <e do

begin

t:= t + (r*(1/(q*ln(q))));

q:= q + r;

i:= i + 1;

end;

 

q:= StrToFloat(Edit1.Text); //nijnii predel

y:= ((w - q)/24)*sqr(r)*abs((1/(Power(u,3)*ln(u)))*

(2+(2/sqr(ln(u)))+(3/ln(u))));

Form3.Label1.Caption:= FloatToStr(t);

Form3.Label2.Caption:= FloatToStr(y);

Form3.ShowModal;

end;

 

procedure TForm2.Edit1KeyPress(Sender: TObject; var Key: Char);

begin

if not (key in ['0'..'9', #8, '.']) then key:= #27;

end;

 

procedure TForm2.Edit2KeyPress(Sender: TObject; var Key: Char);

begin

if not (key in ['0'..'9', #8, '.']) then key:= #27;

end;

 

procedure TForm2.Edit3KeyPress(Sender: TObject; var Key: Char);

begin

if not (key in ['0'..'9',#8]) then key:= #27;

end;

 

procedure TForm2.Edit3Exit(Sender: TObject);

begin

if Length(Edit3.Text) <1 then

begin

MessageBox(0,'Please, fill the field with appropriate

number!', 'WARNING!!!', mb_OK);

ActiveControl:= Edit3;

end;

end;

 

procedure TForm2.Edit2Exit(Sender: TObject);

begin

if Length(Edit2.Text) <1 then

begin

MessageBox(0,'Please, fill the field with appropriate

number!', 'WARNING!!!', mb_OK);

ActiveControl:= Edit2;

end;

end;

 

procedure TForm2.Edit1Exit(Sender: TObject);

begin

if Length(Edit1.Text) <1 then

begin

MessageBox(0,'Please, fill the field with appropriate

number!', 'WARNING!!!', mb_OK);

ActiveControl:= Edit1;

end;

end;

end.

 

unit lab3_3b;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls,

Forms, Dialogs, StdCtrls, ExtCtrls;

type

TForm3 = class(TForm)

Image1: TImage;

Label1: TLabel;

Button1: TButton;

Image2: TImage;

Label2: TLabel;

procedure Button1Click(Sender: TObject);

procedure Label3Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

Form3: TForm3;

 

implementation

uses lab3_4b, lab3_2b;

var

q, w: extended;

{$R *.DFM}

 

procedure TForm3.Button1Click(Sender: TObject);

begin

Close;

end;

 

procedure TForm3.Label3Click(Sender: TObject);

begin

Form4.ShowModal;

end;

 

procedure TForm3.Button2Click(Sender: TObject);

begin

q:= (2.3026*(ln(ln(StrToFloat(Form2.Edit2.Text)))-

ln(ln(2))))-(2.3026*(ln(ln(StrToFloat(Form2.Edit1.Text)))-

ln(ln(2))));

w:= StrToFloat(Label1.Caption);

ShowMessage(FloatToStr(w - q));

end;

 

end.

 

unit lab3_4b;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls,

Forms, Dialogs, StdCtrls, ExtCtrls;

type

TForm4 = class(TForm)

Button1: TButton;

procedure Button1Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

Form4: TForm4;

implementation

{$R *.DFM}

 

procedure TForm4.Button1Click(Sender: TObject);

begin

Close;

end;

 

procedure TForm4.FormCreate(Sender: TObject);

begin

end;

 

end.

 

program Plaba3_1b;

uses

Forms,

lab3_1b in 'lab3_1b.pas' {Form1},

lab3_2b in 'lab3_2b.pas' {Form2},

lab3_3b in 'lab3_3b.pas' {Form3};

 

{$R *.RES}

begin

Application.Initialize;

Application.CreateForm(TForm1, Form1);

Application.CreateForm(TForm2, Form2);

Application.CreateForm(TForm3, Form3);

Application.Run;

end.

 


<== предыдущая лекция | следующая лекция ==>
Компонент TToolBar- инструментальная панель | Создание многостраничного документа
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 615; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.048 сек.