49964 (Створення програми-органайзера), страница 2
Описание файла
Документ из архива "Створення програми-органайзера", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "курсовые/домашние работы", в предмете "информатика, программирование" в общих файлах.
Онлайн просмотр документа "49964"
Текст 2 страницы из документа "49964"
Основою форми є вже вищезгадані ClientDataSet та DataSourse, DBGrid і DBNavigator.
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 Головне вікно органайзера.
Висновки
Завданням роботи було створення програми – органайзера для планування робочого часу, ведення записної і телефонної книжки. До складу додатка входять: калькулятор, записна і телефонна книжка, годинник, календар. Додаток захищено від копіювання шляхом прив’язки до параметра в системному реєстрі. Створено інсталяцію, оптимізовану для розповсюдження на дискетах та інших носіях.
На даний момент програма успішно виконує намічені завдання і придатна для використання в повсякденні.
Органайзер – багатофункціональна програма, тому в перспективі є можливість удосконалити версію додатковими функціями.
Список використаної літератури
-
М. Фленов «Библия Delphi», С-Петербург, - «БХВ-Петербург», 2004.
-
Попов В.Б. «Паскаль и Дельфи. Самоучитель», - СПб.: Питер, 2004.
-
Шпак Ю. А. «Delphi 7 на примерах», - «Юниор», 2003.
-
http://delphiexpert.ru/book.php
-
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.
10>0>1>