КАТЕГОРИИ: Архитектура-(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.
Дата добавления: 2014-01-07; Просмотров: 638; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |