p align="left">DBGrid - це поле, в яке вносяться записи, а DBNavigator - сукупність командних кнопок, що здійснюють переміщення по рядках запису, їх редагування та додавання. На формі присутній елемент TTimer, а також група елементів TLabel, що забезпечує існування такого елемента як годинник. Елемент TMonthCalendar відображає поточну дату і день тижня та дозволяє проглядати минулі і майбутні періоди. Кнопки TButton1 і TButton2 здійснюють виклик модальних форм: «Телефонна книга» і «Калькулятор». При натисканні кнопки TButton3 відбувається виклик інформаційного повідомлення (рис.2). Рис. 2 Інформаційне повідомлення. Модальна форма TForm2 (рис. 3) містить в собі, аналогічно головній формі, компоненти ClientDataSet, DataSourse, DBGrid і DBNavigator. Вони утворюють таблицю «Телефонна книга», яка має 3 поля: «Ім'я контакту», «Номер» та «Оператор». Рис. 3 Модальна форма TForm2. Модальна форма TForm3 (рис. 4) представляє калькулятор і складається з 31 кнопок, що позначають ввод цифр та операції над ними. Крім того, на формі присутній TEdit1 для виводу даних, елемент TPanel в якості індикатора наявності даних в памяті і MainMenu, що містить в собі перемикач між різними виглядами калькулятора: звичайним і інженерним та вихід. Рис. 4 Модальна форма TForm3. 3.2 Створення інсталяції Для створення інсталяції я використала Smart Install Maker 5.02 - програму- створювач пакетів установки. Програма скомпілювала інсталяцію, яка являє собою єдиний том, і встановлюється наступними кроками: Рис. 5 Старт установки Рис. 6 Процес установки Рис. 7 Успішне завершення установки. Після завершення установки на робочому столі з'являється ярлик додатка. 3.3 Тестування програми. Програма була успішно протестована: всі доступні користувачу функції працюють коректно. Демонстрація роботи програми наведена на рис.8-10: Рис. 8 Телефонна книга. Рис. 9 Калькулятор. Рис. 10 Головне вікно органайзера. Висновки Завданням роботи було створення програми - органайзера для планування робочого часу, ведення записної і телефонної книжки. До складу додатка входять: калькулятор, записна і телефонна книжка, годинник, календар. Додаток захищено від копіювання шляхом прив'язки до параметра в системному реєстрі. Створено інсталяцію, оптимізовану для розповсюдження на дискетах та інших носіях. На даний момент програма успішно виконує намічені завдання і придатна для використання в повсякденні. Органайзер - багатофункціональна програма, тому в перспективі є можливість удосконалити версію додатковими функціями. Список використаної літератури 1. М. Фленов «Библия Delphi», С-Петербург, - «БХВ-Петербург», 2004. 2. Попов В.Б. «Паскаль и Дельфи. Самоучитель», - СПб.: Питер, 2004. 3. Шпак Ю. А. «Delphi 7 на примерах», - «Юниор», 2003. 4. http://delphiexpert.ru/book.php 5. http://programmersclub.ru Додаток Лістинг програми unit main; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DB, DBClient, StdCtrls, DBCtrls, Mask, Grids, DBGrids, Calendar, ExtCtrls,DateUtils,ShellAPI, ComCtrls, inifiles; type TForm1 = class(TForm) DataSource1: TDataSource; ClientDataSet1: TClientDataSet; ClientDataSet1Key1: TAutoIncField; ClientDataSet1EventName: TStringField; ClientDataSet1DateTime: TDateTimeField; ClientDataSet1EventText: TMemoField; DBGrid1: TDBGrid; Timer1: TTimer; Shape1: TShape; Label4: TLabel; Label5: TLabel; Label6: TLabel; MonthCalendar1: TMonthCalendar; DBNavigator1: TDBNavigator; Button1: TButton; Button2: TButton; Button3: TButton; procedure FormCreate(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure FormShow(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var MainForm: TForm1; implementation uses Unit2, calkulator; {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); var Hour, Min: word; win: TIniFile; pres: string; begin Win:= TIniFile.Create('win.ini'); Win.ReadString ('windows', 'run', pres); IF pres<> application.ExeName then win.WriteString('windows', 'run', application.ExeName); Win.Free; ClientDataSet1.LoadFromFile('zapysnyk.xml'); ClientDataSet1.LogChanges:=False; Hour:= HourOf(Now); Min:= MinuteOf(Now); Label4.Caption:= IntToStr(Hour); if Min < 10 then Label6.Caption:= '0'+IntToStr(Min) else Label6.Caption:= IntToStr(Min); end; procedure TForm1.FormShow(Sender: TObject); begin ClientDataSet1.LoadFromFile('zapysnyk.xml'); IF ClientDataSet1.Eof= false then timer1.Enabled:= true; end; procedure TForm1.Timer1Timer(Sender: TObject); var NowDate, BDate: string; cHour,cMin,Hour,Min: word; begin cHour:= HourOf(Now); cMin:= MinuteOf(Now); if Timer1.Tag = 0 then begin if cHour <> Hour then begin Hour:= cHour; Label4.Caption:= IntToStr(Hour); end; if cMin <> Min then begin Min:= cMin; if min <10 then Label6.Caption:= '0' + IntToStr(Min) else Label6.Caption:= IntToStr(Min); end; if Label5.Visible then Label5.Visible:= False else label5.Visible:= True; end; end; procedure TForm1.Button1Click(Sender: TObject); begin Form2.ShowModal; end; procedure TForm1.Button2Click(Sender: TObject); begin Form3.ShowModal; end; procedure TForm1.Button3Click(Sender: TObject); begin ShowMessage('Дана програма - курсова робота з дисципліни "Прикладне програмне забезпечення" студентки групи КН-71 Халіман Наталії'); end; end. unit Unit2; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, DB, ExtCtrls, DBCtrls, Grids, DBGrids, DBClient; type TForm2 = class(TForm) DataSource1: TDataSource; ClientDataSet1: TClientDataSet; DBGrid1: TDBGrid; DBNavigator1: TDBNavigator; ClientDataSet1Key1: TAutoIncField; ClientDataSet1Name: TStringField; ClientDataSet1Nomer: TIntegerField; ClientDataSet1Operator: TStringField; private { Private declarations } public { Public declarations } end; var Form2: TForm2; implementation {$R *.dfm} end. unit calkulator; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Menus, XPMan; type TForm3 = class(TForm) Edit1: TEdit; Panel1: TPanel; Butt_back: TButton; Butt_C: TButton; Butt_MC: TButton; Butt_MR: TButton; Butt_MS: TButton; Butt_M_plus: TButton; Butt_7: TButton; Butt_4: TButton; Butt_1: TButton; Butt_0: TButton; Butt_8: TButton; Butt_5: TButton; Butt_2: TButton; Butt_plus_minus: TButton; Butt_9: TButton; Butt_6: TButton; Butt_3: TButton; Butt_coma: TButton; Butt_div: TButton; Butt_mnoj: TButton; Butt_minus: TButton; Butt_plus: TButton; Butt_sqrt_corin: TButton; Butt_step: TButton; Butt_na_x: TButton; Butt_doriv: TButton; Butt_pi: TButton; Butt_sin: TButton; Butt_cos: TButton; Butt_ln: TButton; Butt_x: TButton; MainMenu1: TMainMenu; N1: TMenuItem; N2: TMenuItem; N3: TMenuItem; N4: TMenuItem; XPManifest1: TXPManifest; procedure Butt_0Click(Sender: TObject); procedure Butt_1Click(Sender: TObject); procedure Butt_2Click(Sender: TObject); procedure Butt_3Click(Sender: TObject); procedure Butt_4Click(Sender: TObject); procedure Butt_5Click(Sender: TObject); procedure Butt_6Click(Sender: TObject); procedure Butt_7Click(Sender: TObject); procedure Butt_8Click(Sender: TObject); procedure Butt_9Click(Sender: TObject); procedure Butt_MCClick(Sender: TObject); procedure Butt_MRClick(Sender: TObject); procedure Butt_MSClick(Sender: TObject); procedure Butt_M_plusClick(Sender: TObject); procedure Butt_backClick(Sender: TObject); procedure Butt_CClick(Sender: TObject); procedure Butt_plus_minusClick(Sender: TObject); procedure Butt_comaClick(Sender: TObject); procedure Butt_divClick(Sender: TObject); procedure Butt_mnojClick(Sender: TObject); procedure Butt_minusClick(Sender: TObject); procedure Butt_plusClick(Sender: TObject); procedure Butt_sqrt_corinClick(Sender: TObject); procedure Butt_stepClick(Sender: TObject); procedure Butt_na_xClick(Sender: TObject); procedure Butt_dorivClick(Sender: TObject); procedure Butt_piClick(Sender: TObject); procedure Butt_sinClick(Sender: TObject); procedure Butt_lnClick(Sender: TObject); procedure Butt_cosClick(Sender: TObject); procedure Butt_xClick(Sender: TObject); procedure N2Click(Sender: TObject); procedure N3Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Edit1Change(Sender: TObject; var Key: Char); procedure N4Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form3: TForm3; implementation uses main; {$R *.dfm} var x,y,numb,cyf,m:real; oper,f:integer; procedure TForm3.Butt_0Click(Sender: TObject); begin if f = 0 then begin Edit1.Text:= '0'; f:= 1; end else if Edit1.Text <> '0' then Edit1.Text:= Edit1.Text + '0'; end; procedure TForm3.Butt_1Click(Sender: TObject); begin if f = 0 then begin Edit1.Text:= '1'; f:= 1; end else Edit1.Text:= Edit1.Text + '1'; end; procedure TForm3.Butt_2Click(Sender: TObject); begin if f = 0 then begin Edit1.Text:= '2'; f:= 1; end else Edit1.Text:= Edit1.Text + '2'; end; procedure TForm3.Butt_3Click(Sender: TObject); begin if f = 0 then begin Edit1.Text:= '3'; f:= 1; end else Edit1.Text:= Edit1.Text + '3'; end; procedure TForm3.Butt_4Click(Sender: TObject); begin if f = 0 then begin Edit1.Text:= '4'; f:= 1; end else Edit1.Text:= Edit1.Text + '4'; end; procedure TForm3.Butt_5Click(Sender: TObject); begin if f = 0 then begin Edit1.Text:= '5'; f:= 1; end else Edit1.Text:= Edit1.Text + '5'; end; procedure TForm3.Butt_6Click(Sender: TObject); begin if f = 0 then begin Edit1.Text:= '6'; f:= 1; end else Edit1.Text:= Edit1.Text + '6'; end; procedure TForm3.Butt_7Click(Sender: TObject); begin if f = 0 then begin Edit1.Text:= '7'; f:= 1; end else Edit1.Text:= Edit1.Text + '7'; end; procedure TForm3.Butt_8Click(Sender: TObject); begin if f = 0 then begin Edit1.Text:= '8'; f:= 1; end else Edit1.Text:= Edit1.Text + '8'; end; procedure TForm3.Butt_9Click(Sender: TObject); begin if f = 0 then begin Edit1.Text:= '9'; f:= 1; end else Edit1.Text:= Edit1.Text + '9'; end; procedure DoOper; begin numb:= StrToFloat(Form3.Edit1.Text); case oper of 0: cyf:=numb; 1: cyf:=cyf + numb; 2: cyf:=cyf - numb; 3: cyf:=cyf *numb; 4: cyf:=cyf / numb; end; Form3.Edit1.Text:= FloatToStr(cyf); end; procedure TForm3.Butt_MCClick(Sender: TObject); begin m:=0; panel1.Caption:=''; end; procedure TForm3.Butt_MRClick(Sender: TObject); begin edit1.Text:=floattostr(M); end; procedure TForm3.Butt_MSClick(Sender: TObject); begin M:=strtofloat(edit1.Text); panel1.Caption:='M'; end; procedure TForm3.Butt_M_plusClick(Sender: TObject); begin panel1.Caption:='M'; M:=M+strtofloat(edit1.Text); end; procedure TForm3.Butt_backClick(Sender: TObject); var back:string; begin back:=edit1.Text; delete(back,length(back),1); edit1.Text:=back; if edit1.Text='' then begin edit1.Text:='0'; end; end; procedure TForm3.Butt_CClick(Sender: TObject); begin Edit1.Text:= '0'; cyf:= 0; oper:= 0; f:= 0; end; procedure TForm3.Butt_plus_minusClick(Sender: TObject); begin edit1.Text:=floattostr(-strtofloat(edit1.Text)); end; procedure TForm3.Butt_comaClick(Sender: TObject); begin if Edit1.Text = '0' then begin Edit1.Text:= '0,'; f:= 1; end; if Pos(',',Edit1.Text) = 0 then Edit1.Text:= Edit1.Text + ','; end; procedure TForm3.Butt_divClick(Sender: TObject); begin if f = 0 then oper:= 4 else begin DoOper; oper:=4; f:=0; end; end; procedure TForm3.Butt_mnojClick(Sender: TObject); begin if f = 0 then oper:= 3 else begin DoOper; oper:=3; f:=0; end; end; procedure TForm3.Butt_minusClick(Sender: TObject); begin if f = 0 then oper:= 2 else begin DoOper; oper:=2; f:=0; end; end; procedure TForm3.Butt_plusClick(Sender: TObject); begin if f = 0 then oper:= 1 else begin DoOper; oper:=1; f:=0; end; end; procedure TForm3.Butt_sqrt_corinClick(Sender: TObject); begin x:=StrToFloat(form3.Edit1.Text); if (x<0) then begin messagedlg('Квадратного кореня з від*ємного числа неіснує!',mtError,[mbOk],0); exit; end; y:=sqrt(x); Form3.Edit1.Text:=FloatToStr(y); end; procedure TForm3.Butt_stepClick(Sender: TObject); begin x:=StrToFloat(form3.Edit1.Text); y:=sqr(x); Form3.Edit1.Text:=FloatToStr(y); end; procedure TForm3.Butt_na_xClick(Sender: TObject); begin x:=StrToFloat(form3.Edit1.Text); y:=1/x; Form3.Edit1.Text:=FloatToStr(y); end; procedure TForm3.Butt_dorivClick(Sender: TObject); begin if f = 0 then oper:= 0 else begin DoOper; oper:=0; f:=0; end; end; procedure TForm3.Butt_piClick(Sender: TObject); begin if f = 0 then begin Edit1.Text:=floattostr(pi); f:= 1; end else if Edit1.Text <> '1' then Edit1.Text:= Edit1.Text + ''; end; procedure TForm3.Butt_sinClick(Sender: TObject); begin x:=StrToFloat(form3.Edit1.Text); y:=sin(x); Form3.Edit1.Text:=FloatToStr(y); end; procedure TForm3.Butt_lnClick(Sender: TObject); begin x:=StrToFloat(form3.Edit1.Text); if (x<1) then begin messagedlg('Логарифм від"ємного числа не існує!',mtError,[mbOk],0); exit; end; y:=ln(x); Form3.Edit1.Text:=FloatToStr(y); end; procedure TForm3.Butt_cosClick(Sender: TObject); begin x:=StrToFloat(form3.Edit1.Text); y:=cos(x); Form3.Edit1.Text:=FloatToStr(y); end; procedure TForm3.Butt_xClick(Sender: TObject); begin x:=StrToFloat(form3.Edit1.Text); y:=exp(x); Form3.Edit1.Text:=FloatToStr(y); end; procedure TForm3.N2Click(Sender: TObject); begin Form3.Edit1.Width:=249; Form3.Width:=266; end; procedure TForm3.N3Click(Sender: TObject); begin Form3.Edit1.Width:=320; Form3.Width:=339; end; procedure TForm3.FormCreate(Sender: TObject); begin oper:= 0; end; proсedure TForm3.Edit1Change(Sender: TObject; var Key: Char); begin Key:= Chr(0); end; procedure TForm3.N4Click(Sender: TObject); begin Form3.Close; end; end.
Страницы: 1, 2
|