- •1 Вступ
- •2 Постановка задачі
- •2.1 Характеристика предметної області
- •2.2 Вимоги до програми
- •2.3 Структура вхідних даних
- •2.4 Структура вихідних даних
- •3 Комп’ютерна система
- •3.2 Вибір програмних засобів та операційної системи
- •4 Об’єктно-орієнтоване проектування
- •4.1 Інтерфейс програми
- •4.2 Алгоритм рішення задачі
- •5 Програмування та тестування
- •5.1 Розробка програми
- •5.2 Етапи відладки
- •5.3 Типи помилок
5 Програмування та тестування
5.1 Розробка програми
Створення бази даних відбувається за допомогою прикладки в
Delphi 7 - Database Desktop.
Для створення таблиці необхідно натиснути New->Table, потім
обрати тип БД Paradox 7.
Заповнити структуру БД, що використовується в програмі як
наведено нище, вона відповідає структурі вхідних даних, що описані в
пункті 2.3. (див. рисунок 5.1)
Рисунок 5.1 – вікно створення БД.
Для опрацювання даної БД в Головній формі введено об’єкт sDBGrid1 та функціональні кнопки для управління. DBGrid1 – один з найбільш часто використовуваних елементів управління, спеціалізація
якого відображення і редагування даних.
5.2 Етапи відладки
Для відладки програми було застосовано інструменти відладки
Delphi. Зокрема трасування. Виконується в меню Run-Trace Into, при
натисканні клавіші F7. Цей метод використовується для відладки
коду в певному місці коду. Таким чином досить легко впевнитись в
правильності або знайти помилку в коді.
Метод покрокового виконання запускається через меню Run->Step
Over, при натисканні на клавішу F8. Дозволяє відстежити де саме і за
яких умов сталась помилка або незбіжність. Досить ефективний з
використанням Break point, точками зупину.
Для контрольного прикладу було застосовано наступні дані, що
містяться в базі даних:
Таблиця 5.1 – Дані до контрольного прикладу.
Номер |
Назва |
Час |
Пріоритет |
Тип |
Коментарі |
1 |
Придбати USB |
25.05.2010 15:00:00 |
Середній |
Звичайне нагадування |
USB 3.0 в магазині Портал |
2 |
Повернути книги |
25.05.20110:50:14 |
Високий |
Звичайне нагадування |
Відвідати бібліотеку |
3 |
День народження |
25.05.2010 19:00:00 |
Високий |
День народження |
День народження у друга |
4 |
Зустріч |
26.05.2010 12:00:00 |
Високий |
Важлива зустріч |
Зустріч с директором фірми |
Результати контрольного прикладу відображено в Додатку В
(див. сторінку ).
5.3 Типи помилок
Під час розробки програмного забезпечення можуть зустрічатися різноманітні типи помилок при компіляції програми. Частіше всього зустрічаються синтаксичні помилки. Наприклад:
If Edit1.Text = ‘’ then
ShowMessage(‘Ви не заповнили обов’язкове поле!’);
Else
Table1.Append;
Table1.FieldByName(‘Name’).asString:=Edit1.Text;
В цьому випадку не можна ставити “;” перед Else.
При роботі с файлами можуть виникати помилки типа “Acces volation” для запобігання цього краще користуватися конструкцією
TRY
FINALLY
END;
Приклад:
var
f:textfile;
password:string;
begin
AssignFile(f,ExtractFilePath(ParamStr(0))+'\config\auth.dat');
Reset(f);
TRY
Read(f,password);
FINALLY
CloseFile(f);
end;
Також одним із найпоширеніших типів помилок може бути різні типи даних. Наприклад в базі даних поле числового типу,а користувач вводить текст. Для запобігання цієї помилки потрібно користуватися обробкою виключних ситуацій.
Висновки
Під час розроблення курсового проекту використовувалось середовище Borland Delphi 7 та база данних Paradox.
Для роботи с даними використовувались компоненти DBMemo,DBGrid,DBEdit,DBComboBox та інші..
Delphi — це інтегроване середовище швидкої розробки програмного забезпечення для роботи під Microsoft Windows. Воно підтримує розробку Windows-застосунків на мові програмування Delphi, яка є наступницею мови Object Pascal.
Delphi 2007, одинадцята версія, входить до складу CodeGear RAD Studio 2007, яка також підтримує розробку на C++ для 32-бітної Microsoft Windows, а також на Delphi і C# для платформи Microsoft .NET. У Delphi 2009, що випущена у серпні 2008-ого, бібліотеки VCL та IDE повністю переведені на Юнікод, також з'явилися нові можливості компілятора (узагальнення (англ. Generics) і анонімні методи), в IDE було додано менеджер ресурсів та повністю перебудовано менеджер проектів. Найновіша, чотирнадцята версія, має назву Delphi 2010 і входить до Embarcadero RAD Studio 2010.
Delphi в основному використовується для розробки настільних застосунків та корпоративних СКБД, проте цей інструмент можна використовувати для розробки будь-якого загального програмного забезпечення. Не залишена осторонь і можливість побудови Веб-застосунків, так потрібних у сучасному інформаційному світі.
Список використаних джерел
Майкл Херволсон, Майкл Янг. Ефективна робота з Microsoft Office. – С.Пб. : Питер, 2001. – 798с.
Бойко И. В. Об’єктно-орієнтовані СУБД. – К.: Вища школа, 1999
Архангельський А. Я. Программирование в Delphi 6: М.: 2003
С. Боровський “Delphi 5” учебный курс П.: 2002. -640 с.
С. Симонович, Г. Евсеев «Занимательное программирование Delphi» М.: «Аст-Пресс Книга», 2001. -368с.
Н.Б. Культин «Программирование на Object Pascal в Delphi 5 » - С.Пб.:2000. – 400с.
Оузьер Д., Батсон С. Освой самостоятельно Delphi 4 - М.: Бином, 1997. - 624 с.
Попов Н.Е. «Delphi5: Обзор компонентов InternetExpress» - М.: Центр информационных технологий , 1999. - 650 с
Додаток А
С
хема
алгоритму програми
Головне
меню
Додати
Інші
функції
Налаштування
Статистика
Довідка
Вихід
Додаток Б
Лістинг програми
unit mainform;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ToolWin, ComCtrls, ImgList, acAlphaImageList, StdCtrls, Menus,
ExtCtrls, sPanel, sMonthCalendar, DBCtrls, sDBLookupListBox, sGroupBox,
DBGrids, acDBGrid, sComboBox, DB, DBTables, Buttons,
sToolBar, sPageControl, ExtDlgs, sDialogs, sDBRichEdit,printers,shellapi,RegisTry,
sDBComboBox, sDBLookupComboBox, sEdit;
type
Tmain = class(TForm)
ToolBar1: TToolBar;
ToolButton1: TToolButton;
sAlphaImageList1: TsAlphaImageList;
ToolButton2: TToolButton;
ToolButton3: TToolButton;
ToolButton4: TToolButton;
ToolButton5: TToolButton;
ToolButton6: TToolButton;
ToolButton7: TToolButton;
ToolButton8: TToolButton;
ToolButton9: TToolButton;
ToolButton10: TToolButton;
ToolButton11: TToolButton;
ToolButton12: TToolButton;
ToolButton13: TToolButton;
StatusBar1: TStatusBar;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
sAlphaImageList2: TsAlphaImageList;
PopupMenu2: TPopupMenu;
N5: TMenuItem;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
PopupMenu4: TPopupMenu;
N7: TMenuItem;
N8: TMenuItem;
sDBGrid1: TsDBGrid;
sAlphaImageList3: TsAlphaImageList;
DataSource1: TDataSource;
DBText1: TDBText;
rname: TLabel;
rtype: TLabel;
DBText2: TDBText;
Label2: TLabel;
DBText3: TDBText;
Label3: TLabel;
DBText4: TDBText;
Table1: TTable;
Label4: TLabel;
DBText5: TDBText;
sAlphaImageList4: TsAlphaImageList;
sToolBar1: TsToolBar;
ToolButton14: TToolButton;
ToolButton15: TToolButton;
ToolButton16: TToolButton;
Table1Id: TAutoIncField;
Table1Name: TStringField;
Table1Type: TStringField;
Table1Prior: TStringField;
Table1Rdate: TDateTimeField;
Table1Comment: TStringField;
Table1Status: TBooleanField;
PageControl2: TPageControl;
TabSheet4: TTabSheet;
TabSheet5: TTabSheet;
TabSheet6: TTabSheet;
TabSheet7: TTabSheet;
sDBGrid2: TsDBGrid;
DataSource2: TDataSource;
Table2: TTable;
Label1: TLabel;
DBText7: TDBText;
Label6: TLabel;
DBText8: TDBText;
Label7: TLabel;
DBText9: TDBText;
Label8: TLabel;
DBText10: TDBText;
Label9: TLabel;
DBText11: TDBText;
Label10: TLabel;
DBText12: TDBText;
Label11: TLabel;
DBText14: TDBText;
Label12: TLabel;
DBText15: TDBText;
Label13: TLabel;
DBText16: TDBText;
Label14: TLabel;
DBText17: TDBText;
Label15: TLabel;
DBText18: TDBText;
Label16: TLabel;
Label17: TLabel;
Label18: TLabel;
Label19: TLabel;
Label20: TLabel;
Label21: TLabel;
Label22: TLabel;
Label23: TLabel;
DBText19: TDBText;
DBText20: TDBText;
DBText21: TDBText;
DBText22: TDBText;
DBText23: TDBText;
DBText24: TDBText;
DBText25: TDBText;
DBText26: TDBText;
Label24: TLabel;
Label25: TLabel;
Label26: TLabel;
Label27: TLabel;
DBText27: TDBText;
DBText28: TDBText;
DBText29: TDBText;
DBText30: TDBText;
sPanel1: TsPanel;
DBImage1: TDBImage;
Table2Id: TAutoIncField;
Table2Name: TStringField;
Table2Surname: TStringField;
Table2Lastname: TStringField;
Table2Bdate: TDateField;
Table2Phone: TStringField;
Table2MPhone: TStringField;
Table2Fax: TStringField;
Table2Photo: TBlobField;
Table2Country: TStringField;
Table2Region: TStringField;
Table2City: TStringField;
Table2Address: TStringField;
Table2JobCountry: TStringField;
Table2JobRegion: TStringField;
Table2JobCity: TStringField;
Table2Company: TStringField;
Table2Post: TStringField;
Table2JobAddress: TStringField;
Table2JobPhone: TStringField;
Table2JobFax: TStringField;
Table2ICQ: TStringField;
Table2Email: TStringField;
Table2Status: TStringField;
Table2About: TStringField;
ToolButton17: TToolButton;
PopupMenu5: TPopupMenu;
N9: TMenuItem;
N10: TMenuItem;
PopupMenu6: TPopupMenu;
N11: TMenuItem;
N12: TMenuItem;
SpeedButton1: TSpeedButton;
sOpenPictureDialog1: TsOpenPictureDialog;
Label28: TLabel;
DBText13: TDBText;
Table2Group: TStringField;
sDBLookupListBox1: TsDBLookupListBox;
DataSource3: TDataSource;
Table3: TTable;
Table3Id: TAutoIncField;
Table3Date: TDateField;
Table3Name: TStringField;
Table3Text: TMemoField;
PopupMenu7: TPopupMenu;
N13: TMenuItem;
N14: TMenuItem;
Label29: TLabel;
DBText31: TDBText;
sSaveDialog1: TsSaveDialog;
DBMemo1: TDBMemo;
N20: TMenuItem;
N21: TMenuItem;
PrintDialog1: TPrintDialog;
N15: TMenuItem;
Timer1: TTimer;
sGroupBox1: TsGroupBox;
Table4: TTable;
Table4Id: TAutoIncField;
Table4Name: TStringField;
Table4Type: TStringField;
Table4Prior: TStringField;
Table4Rdate: TDateTimeField;
Table4Comment: TStringField;
Table4Status: TBooleanField;
sDBLookupComboBox1: TsDBLookupComboBox;
Edit1: TsEdit;
procedure ToolButton6Click(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure N8Click(Sender: TObject);
procedure ToolButton14Click(Sender: TObject);
procedure N17Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N9Click(Sender: TObject);
procedure N10Click(Sender: TObject);
procedure N12Click(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure N11Click(Sender: TObject);
procedure DBImage1Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure ToolButton15Click(Sender: TObject);
procedure ToolButton16Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure N14Click(Sender: TObject);
procedure N20Click(Sender: TObject);
procedure N15Click(Sender: TObject);
procedure N13Click(Sender: TObject);
procedure ToolButton8Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure ToolButton12Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure sDBLookupComboBox1Click(Sender: TObject);
procedure N5Click(Sender: TObject);
procedure N7Click(Sender: TObject);
private
{ Private declarations }
Procedure WindowMessage(Var Msg:TMessage); message WM_SYSCOMMAND;
Procedure MouseClick(var Msg:TMessage); message WM_USER+1;
public
{ Public declarations }
procedure ActionIcon(n:Integer;Icon:TIcon);
Procedure OnMinimizeProc(Sender:TObject);
end;
var
main: Tmain;
implementation
uses authentication, settings, addreminder, aboutfrom, editrem,
addphonenumber, editphonenumber, addnote, editnote, statistic, simp;
{$R *.dfm}
procedure TMain.ActionIcon(n:Integer;Icon:TIcon);
Var Nim:TNotifyIconData;
begin
With Nim do // Заполняем структуру Nim….
Begin
cbSize:=SizeOf(Nim); // Размер
Wnd:=Main.Handle; // Хендл нашего приложения(окна)
uID:=1;
uFlags:=NIF_ICON or NIF_MESSAGE or NIF_TIP;
hicon:=Icon.Handle; // Хендл передаваемой в процедуру иконки
uCallbackMessage:=wm_user+1;
szTip:='Сообщение появляющееся при наведении';
End;
Case n OF // Действия выполняемые процедурой
1: Shell_NotifyIcon(Nim_Add,@Nim);
2: Shell_NotifyIcon(Nim_Delete,@Nim);
3: Shell_NotifyIcon(Nim_Modify,@Nim);
End;
end;
Procedure TMain. WindowMessage (Var Msg:TMessage);
Begin
IF Msg.WParam=SC_MINIMIZE then Begin
ActionIcon (1,Application.Icon); // Добавляем значок в трей
ShowWindow(Handle,SW_HIDE); // Скрываем программу
ShowWindow(Application.Handle,SW_HIDE); // Скрываем кнопку с TaskBar'а
End else inherited;
End;
Procedure TMain.OnMinimizeProc(Sender:TObject);
Begin
PostMessage(Handle,WM_SYSCOMMAND,SC_MINIMIZE,0);
End;
procedure TMain.MouseClick(var Msg:TMessage);
Var p:tpoint;
begin
GetCursorPos(p); // Запоминаем координаты курсора мыши(см. P/S)
Case Msg.LParam OF // Проверяем какая кнопка была нажата
WM_LBUTTONUP,WM_LBUTTONDBLCLK: {Действия, выполняемый по одинарному или двойному щелчку левой кнопки мыши на значке}
Begin
ActionIcon (2,Application.Icon); // Удаляем значок из трея
ShowWindow(Application.Handle,SW_SHOW); // Восстанавливаем кнопку программы
ShowWindow(Handle,SW_SHOW); // Восстанавливаем окно программы
End;
End;
end;
procedure Tmain.ToolButton6Click(Sender: TObject);
begin
setting.showmodal;
end;
procedure Tmain.N1Click(Sender: TObject);
begin
reminder.showmodal;
end;
procedure Tmain.N6Click(Sender: TObject);
begin
close;
end;
procedure Tmain.N8Click(Sender: TObject);
begin
about.showmodal;
end;
procedure Tmain.ToolButton14Click(Sender: TObject);
begin
Table1.Filter:='(prior=''Низкий'')';
Table1.Filtered:=true;
End;
procedure Tmain.N17Click(Sender: TObject);
begin
DBMemo1.CopyToClipboard;
end;
procedure Tmain.N2Click(Sender: TObject);
begin
addphone.showmodal;
end;
procedure Tmain.N9Click(Sender: TObject);
begin
editreminder.ShowModal;
end;
procedure Tmain.N10Click(Sender: TObject);
begin
Table1.Delete;
end;
procedure Tmain.N12Click(Sender: TObject);
begin
Table2.Delete;
end;
procedure Tmain.SpeedButton1Click(Sender: TObject);
begin
if not Table2.Locate('surname', Edit1.Text, [loCaseInsensitive,loPartialKey]) then
ShowMessage('Запись не найдена');
end;
procedure Tmain.N11Click(Sender: TObject);
begin
editphone.showmodal;
end;
procedure Tmain.DBImage1Click(Sender: TObject);
begin
If sOpenPictureDialog1.Execute then
begin
Table2.Edit;
Table2Photo.LoadFromFile(sOpenPictureDialog1.FileName);
Table2.Post;
end;
end;
procedure Tmain.N3Click(Sender: TObject);
begin
addnotes.showmodal;
end;
procedure Tmain.ToolButton15Click(Sender: TObject);
begin
Table1.Filter:='(prior=''Средний'')';
Table1.Filtered:=true;
end;
procedure Tmain.ToolButton16Click(Sender: TObject);
begin
Table1.Filter:='(prior=''Высокий'')';
Table1.Filtered:=true;
end;
procedure Tmain.Timer1Timer(Sender: TObject);
var
NowDate, BDate: string;
begin
Table4.First;
While not Table4.Eof do
begin
NowDate:= DateTimeToStr(now);
BDate:= DateTimeToStr(Table4.FieldByName('rDate').AsDateTime);
Delete (NowDate, length(NowDate)-2, 2);
Delete (BDate, length(bdate)-2, 2);
IF NowDate = Bdate then
begin
table4.Delete;
Simple.ShowModal;
end
else
Table4.Next;
application.ProcessMessages;
end;
end;
procedure Tmain.N14Click(Sender: TObject);
begin
If sSaveDialog1.Execute then
DBMemo1.Lines.SaveToFile(sSaveDialog1.FileName);
end;
procedure Tmain.N20Click(Sender: TObject);
begin
Table3.Delete;
end;
procedure Tmain.N15Click(Sender: TObject);
var
St:System.TextFile;
i:integer;
begin
if PrintDialog1.Execute then
begin
AssignPrn(St);
Rewrite(St);
Printer.Canvas.Font:=DBMemo1.Font;
Writeln(St,DBMemo1.Text);
System.CloseFile(St);
end; end;
procedure Tmain.N13Click(Sender: TObject);
begin
editnotes.showmodal;
end;
procedure Tmain.ToolButton8Click(Sender: TObject);
begin
stat.showmodal;
end;
procedure Tmain.FormCreate(Sender: TObject);
var reg: tregistry;
begin
Application.onMinimize:=OnMinimizeProc;
begin
reg := tregistry.create;
reg.rootkey := hkey_local_machine;
reg.lazywrite := false;
reg.openkey('software\microsoft\windows\currentversion\run', false);
reg.writestring('progrmma', application.exename); {вместо programma можно вставить что нибудь своё}
reg.closekey;
reg.free;
end;
end;
procedure Tmain.ToolButton12Click(Sender: TObject);
begin
CLOSE;
end;
procedure Tmain.Button1Click(Sender: TObject);
begin
simple.Show;
end;
procedure Tmain.sDBLookupComboBox1Click(Sender: TObject);
begin
Table2.Filtered:=false;
Table2.Filter:='[group]='+QuotedStr(sDBLookupComboBox1.text);
Table2.Filtered:=true;
end;
procedure Tmain.N5Click(Sender: TObject);
var
NewFileName,OldFileName:string;
begin
//пути для бд групп
NewFileName:=ExtractFilePath(ParamStr(0))+'db\groups.db';
OldFileName:=ExtractFilePath(ParamStr(0))+'backup\groups.db';
//копирование
CopyFile(Pchar(NewFileName),Pchar(OldFileName),true);
// пути для бд телефона
NewFileName:=ExtractFilePath(ParamStr(0))+'db\phone.db';
OldFileName:=ExtractFilePath(ParamStr(0))+'backup\phone.db';
//копирование
CopyFile(Pchar(NewFileName),Pchar(OldFileName),true);
// пути для бд теле ф она
NewFileName:=ExtractFilePath(ParamStr(0))+'db\notes.db';
OldFileName:=ExtractFilePath(ParamStr(0))+'backup\notes.db';
//копирование
CopyFile(Pchar(NewFileName),Pchar(OldFileName),true);
NewFileName:=ExtractFilePath(ParamStr(0))+'db\reminder.db';
OldFileName:=ExtractFilePath(ParamStr(0))+'backup\reminder.db';
//копирование
CopyFile(Pchar(NewFileName),Pchar(OldFileName),true);
showmessage('Резервная копия базы данных успешно создана и находится в каталоге "Backup". Reminder.db - напоминания. Phone.db - телефонный справочник. Notes.db - заметки. Groups.db - группы абонентов.');
end;
procedure Tmain.N7Click(Sender: TObject);
begin
ShellExecute(0, 'open', Pchar(ExtractFilePath(Application.ExeName) + 'help.chm'), nil, nil, SW_NORMAL);
end;
end.
unit simp;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DBCtrls, DB,mmsystem;
type
Tsimple = class(TForm)
DataSource1: TDataSource;
Label1: TLabel;
Label2: TLabel;
DBText1: TDBText;
DBText2: TDBText;
Label3: TLabel;
DBText3: TDBText;
Label4: TLabel;
DBText4: TDBText;
private
{ Private declarations }
public
{ Public declarations }
end;
var
simple: Tsimple;
implementation
uses mainform;
{$R *.dfm}
end.
unit editrem;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DBCtrls, sComboBox, sEdit, sSpinEdit, Mask, sMaskEdit,
sCustomComboEdit, sTooledit, sLabel, sGroupBox, sDBEdit, sDBDateEdit,
ExtCtrls, sPanel, sMonthCalendar;
type
Teditreminder = class(TForm)
sRadioGroup1: TsRadioGroup;
Label1: TLabel;
sLabel1: TsLabel;
sLabel2: TsLabel;
sLabel3: TsLabel;
sLabel4: TsLabel;
sTimePicker1: TsTimePicker;
Button1: TButton;
Button2: TButton;
DBMemo1: TDBMemo;
DBComboBox1: TDBComboBox;
DBEdit1: TsDBEdit;
Calendar1: TsMonthCalendar;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
editreminder: Teditreminder;
implementation
uses mainform;
{$R *.dfm}
procedure Teditreminder.Button1Click(Sender: TObject);
var
full, date : string;
new:TDateTime;
begin
date:= inttostr (calendar1.Day)+'.'+inttostr (calendar1.month)+'.'+inttostr (calendar1.year);
full:= date+' '+sTimePicker1.Text;
New:=TDateTime(now);
if full < DateTimeToStr(new) then showmessage ('Дата напоминания не может быть позже текущей даты!') else
if DBEdit1.Text = '' then begin
showmessage('Введите пожалуйта название напоминания!');
Exit;
end
else begin
main.Table1.edit;
main.Table1.FieldByName('rdate').AsDateTime:=StrToDateTime(full);
main.Table1.FieldByName('name').AsString:=DBEdit1.Text;
main.Table1.FieldByName('type').AsString:=sRadioGroup1.Items.Text;
main.Table1.FieldByName('prior').AsString:=DBComboBox1.Text;
main.Table1.FieldByName('comment').AsString:=DBMemo1.Text;
main.Table1.FieldByName('status').AsBoolean:=false;
main.Table1.Post;
main.Table1.Refresh;
close;
end;
end;
procedure Teditreminder.Button2Click(Sender: TObject);
begin
close;
end;
end.
unit editnote;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Mask, DBCtrls, sDialogs, ImgList, acAlphaImageList,
Menus;
Type
Teditnotes = class(TForm)
Label1: TLabel;
DBEdit1: TDBEdit;
Label2: TLabel;
DBMemo1: TDBMemo;
Button1: TButton;
Button2: TButton;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
sAlphaImageList1: TsAlphaImageList;
sOpenDialog1: TsOpenDialog;
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure N5Click(Sender: TObject);
procedure N6Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
editnotes: Teditnotes;
implementation
uses mainform;
{$R *.dfm}
procedure Teditnotes.Button2Click(Sender: TObject);
begin
close;
end;
procedure Teditnotes.Button1Click(Sender: TObject);
var
dt:TDateTime;
begin
dt:=now;
main.Table3.edit;
main.Table3.FieldByName('name').AsString:=DBEdit1.Text;
main.Table3.FieldByName('text').AsString:=DBMemo1.Text;
main.Table3.FieldByName('date').AsDateTime:=dt;
main.Table3.Post;
main.Table3.Refresh;
close;
end;
procedure Teditnotes.N1Click(Sender: TObject);
begin
if sOpenDialog1.Execute then
begin
DBMemo1.Clear;
DBMemo1.Lines.LoadFromFile(sOpenDialog1.FileName);
end;
end;
procedure Teditnotes.N2Click(Sender: TObject);
begin
DBMemo1.Clear;
end;
procedure Teditnotes.N3Click(Sender: TObject);
begin
DBMemo1.PasteFromClipboard;
end;
procedure Teditnotes.N4Click(Sender: TObject);
begin
DBMemo1.CopyToClipboard;
end;
procedure Teditnotes.N5Click(Sender: TObject);
begin
DBMemo1.CutToClipboard;
end;
procedure Teditnotes.N6Click(Sender: TObject);
begin
DBMemo1.SelectAll;
end;
end.
unit addreminder;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, sGroupBox, sComboBox, sEdit, sSpinEdit, sLabel, Mask,
sMaskEdit, sCustomComboEdit, sTooledit, sMemo, acPNG, ExtCtrls, ComCtrls,
sPanel, sMonthCalendar;
type
Treminder = class(TForm)
Edit1: TEdit;
Label1: TLabel;
sLabel2: TsLabel;
sTimePicker1: TsTimePicker;
sLabel3: TsLabel;
sComboBox1: TsComboBox;
sMemo1: TsMemo;
sLabel4: TsLabel;
Button1: TButton;
Button2: TButton;
sRadioGroup1: TsRadioGroup;
Calendar1: TsMonthCalendar;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
reminder: Treminder;
implementation
uses mainform, ADODB;
{$R *.dfm}
procedure Treminder.Button1Click(Sender: TObject);
var
full, date : string;
new:TDateTime;
begin
date:= inttostr (calendar1.Day)+'.'+inttostr (calendar1.month)+'.'+inttostr (calendar1.year);
full:= date+' '+sTimePicker1.Text;
New:=TDateTime(now);
if full < DateTimeToStr(new) then showmessage ('Дата напоминания не может быть позже текущей даты!') else
if Edit1.Text = '' then begin
showmessage('Введите пожалуйта название нового напоминания!');
Exit;
end
else begin
main.Table1.Append;
main.Table1.FieldByName('rdate').AsDateTime:=StrToDateTime(full);
main.Table1.FieldByName('name').AsString:=Edit1.Text;
main.Table1.FieldByName('type').AsString:=sRadioGroup1.Items.Text;
main.Table1.FieldByName('prior').AsString:=sComboBox1.Text;
main.Table1.FieldByName('name').AsString:=Edit1.Text;
main.Table1.FieldByName('comment').AsString:=smemo1.Text;
main.Table1.FieldByName('status').AsBoolean:=false;
main.Table1.Post;
main.Table1.Refresh;
close;
end;
end;
procedure Treminder.Button2Click(Sender: TObject);
begin
close;
end;
end.
unit addnote;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, ToolWin, sToolBar, ImgList, acAlphaImageList,
ActnList, StdActns, ExtActns, Menus, sDialogs;
type
Taddnotes = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Button1: TButton;
Button2: TButton;
Memo1: TMemo;
sAlphaImageList1: TsAlphaImageList;
ActionList1: TActionList;
Label2: TLabel;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
sOpenDialog1: TsOpenDialog;
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure N5Click(Sender: TObject);
procedure N6Click(Sender: TObject);
private
{ Private declarations }
Public
{ Public declarations }
end;
var
addnotes: Taddnotes;
implementation
uses mainform;
{$R *.dfm}
procedure Taddnotes.Button2Click(Sender: TObject);
begin
close;
end;
procedure Taddnotes.Button1Click(Sender: TObject);
var
dt:TDateTime;
begin
dt:=now;
main.Table3.Append;
main.Table3.FieldByName('name').AsString:=Edit1.Text;
main.Table3.FieldByName('text').AsString:=Memo1.Text;
main.Table3.FieldByName('date').AsDateTime:=dt;
main.Table3.Post;
main.Table3.Refresh;
Edit1.Clear;
Memo1.Clear;
Close;
end;
procedure Taddnotes.N1Click(Sender: TObject);
begin
if sOpenDialog1.Execute then begin
Memo1.Clear;
Memo1.Lines.LoadFromFile(sOpenDialog1.FileName);
end;
end;
procedure Taddnotes.N2Click(Sender: TObject);
begin
Memo1.Clear;
end;
procedure Taddnotes.N3Click(Sender: TObject);
begin
Memo1.PasteFromClipboard;
end;
procedure Taddnotes.N4Click(Sender: TObject);
begin
Memo1.CopyToClipboard;
end;
procedure Taddnotes.N5Click(Sender: TObject);
begin
Memo1.CutToClipboard;
end;
procedure Taddnotes.N6Click(Sender: TObject);
begin
Memo1.SelectAll;
end;
end.
unit statistic;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, sGroupBox, TeEngine, Series, ExtCtrls;
type
Tstat = class(TForm)
sGroupBox1: TsGroupBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
stat: Tstat;
implementation
uses mainform, settings;
{$R *.dfm}
procedure Tstat.FormCreate(Sender: TObject);
begin
Main.Table1.Last;
Label2.Caption:=IntToStr(Main.Table1.RecordCount);
Main.Table2.Last;
Label4.Caption:=IntToStr(Main.Table2.RecordCount);
Main.Table3.Last;
Label6.Caption:=IntToStr(Main.Table3.RecordCount);
Setting.Table1.Last;
Label8.Caption:=IntToStr(Setting.Table1.RecordCount);
end;
end.
unit settings;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls, Buttons, sAlphaListBox, ExtCtrls, sGroupBox,
DBCtrls, DB, DBTables, dbcgrids, acDBCtrlGrid, Menus, Grids, DBGrids,
acDBGrid;
type
Tsetting = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
Label1: TLabel;
lpassword: TLabel;
Label3: TLabel;
Edit1: TEdit;
Label4: TLabel;
Label2: TLabel;
Memo1: TMemo;
GroupBox1: TGroupBox;
Label5: TLabel;
Edit2: TEdit;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
TabSheet2: TTabSheet;
Image1: TImage;
DataSource1: TDataSource;
Table1: TTable;
sGroupBox1: TsGroupBox;
Label11: TLabel;
Edit3: TEdit;
Label12: TLabel;
Memo2: TMemo;
Button1: TButton;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
Table1Id: TAutoIncField;
Table1Name: TStringField;
Table1About: TStringField;
sDBGrid1: TsDBGrid;
SpeedButton1: TSpeedButton;
Label6: TLabel;
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure TabSheet1Show(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
setting: Tsetting;
f:textfile;
implementation
{$R *.dfm}
procedure Tsetting.BitBtn1Click(Sender: TObject);
var
password,question,answer:string;
i:integer;
begin
label6.Caption:='Включено!';
Password:=Edit1.Text;
Question:=Memo1.Text;
Answer:=Edit2.Text;
//пароль
For i:=1 to Length(password) do
if (ord(Password[i]))<=253 then password[i]:=Chr(ord(Password[i])+2);
// вопрос
For i:=1 to Length(question) do
if (ord(question[i]))<=253 then question[i]:=Chr(ord(question[i])+2);
//ответ
For i:=1 to Length(answer) do
if (ord(answer[i]))<=253 then answer[i]:=Chr(ord(answer[i])+2);
AssignFile(f,ExtractFilePath(ParamStr(0))+'config\auth.dat');
TRY
Rewrite(f);
WriteLn(f,password);
WriteLn(f,question);
Writeln(f,answer);
FINALLY
CloseFile(f);
END;
For i:=1 to Length(password) do
if(Ord(password[i])) < 255 then password[i]:=Chr(Ord(password[i]) - 2);
lpassword.Caption:=password;
GroupBox1.Visible:=false;
SpeedButton1.Enabled:=true;
end;
procedure Tsetting.BitBtn2Click(Sender: TObject);
begin
close;
end;
procedure Tsetting.TabSheet1Show(Sender: TObject);
var
password,question,answer:string;
i:integer;
begin
if FileExists(ExtractFilePath(ParamStr(0))+'config\auth.dat') then
begin
label6.Caption:='Включено!';
SpeedButton1.Enabled:=true;
GroupBox1.Visible:=false;
AssignFile(f,ExtractFilePath(ParamStr(0))+'\config\auth.dat');
Reset(f);
TRY
Readln(f,password);
Readln(f,question);
Readln(f,answer);
FINALLY
CloseFile(f);
END;
For i:=1 to Length(password) do
if(Ord(password[i])) < 255 then password[i]:=Chr(Ord(password[i]) - 2);
lpassword.Caption:=password;
end
else
begin
lpassword.Caption:='Не указан!';
SpeedButton1.Enabled:=false;
label6.Caption:='Отключено!';
GroupBox1.Visible:=true;
end;
end;
procedure Tsetting.Button1Click(Sender: TObject);
begin
if Edit3.Text = '' then
showmessage('Введите пожалуйста название новой группы!')
else begin
Table1.Append;
Table1.FieldByName('Name').asString:=Edit3.Text;
Table1.FieldByName('about').AsString:=Memo2.Text;
Table1.Post;
Table1.Refresh;
Edit3.Clear;
Memo2.Clear;
end;
end;
procedure Tsetting.N1Click(Sender: TObject);
begin
Table1.Delete;
end;
procedure Tsetting.SpeedButton1Click(Sender: TObject);
begin
Erase(f);
SpeedButton1.Enabled:=false;
GroupBox1.Visible:=true;
end;
end.
unit forgotpassword;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, acPNG, ExtCtrls, Buttons;
type
Tforgot = class(TForm)
Label1: TLabel;
lquestion: TLabel;
Memo1: TMemo;
Image1: TImage;
SpeedButton1: TSpeedButton;
lpassword: TLabel;
Edit1: TEdit;
procedure FormShow(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
forgot: Tforgot;
password,question,answer:string;
f:textfile;
implementation
uses authentication;
{$R *.dfm}
procedure Tforgot.FormShow(Sender: TObject);
var
i:integer;
begin
Forgot.Top:=login.Top;
Forgot.Left:=login.left;
Edit1.Visible:=false;
lpassword.Visible:=false;
Memo1.Clear;
AssignFile(f,ExtractFilePath(ParamStr(0))+'\config\auth.dat');
Reset(f);
TRY
Readln(f); // пароль
Readln(f,question); // вопрос
FINALLY
CloseFile(f);
end;
//декодирование
For i:=1 to Length (question) do
if Ord(Question[i]) < 255 then Question[i]:=Chr(Ord(Question[i]) - 2);
Lquestion.Caption:=question;
end;
procedure Tforgot.SpeedButton1Click(Sender: TObject);
var
i:integer;
begin
AssignFile(f,ExtractFilePath(paramstr(0))+'\config\auth.dat');
Reset(f);
TRY
Readln(f,password);
Readln(f);
Readln(f,answer);
FINALLY
CloseFile(f);
END;
For i:=1 to Length(answer) do
if (ord(answer[i]))<=253 then answer[i]:=Chr(ord(answer[i])-2);
if Memo1.Text = answer then
begin
lpassword.Visible:=true;
lpassword.Caption:='Ваш пароль:';
Edit1.Visible:=True;
For i:=1 to Length(password) do
if (ord(Password[i]))<=253 then password[i]:=Chr(ord(Password[i])-2);
Edit1.Text:=password;
end
else begin
lpassword.Visible:=true;
lpassword.Font.Color:=clRed;
lpassword.Caption:='Вы дали не правильный ответ на вопрос!';
end;
end;
end.
unit editphonenumber;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, DBCtrls, Mask, sMaskEdit, sCustomComboEdit,
sTooledit, sDBDateEdit, sDBLookupComboBox;
type
Teditphone = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label28: TLabel;
Label29: TLabel;
Label30: TLabel;
TabSheet2: TTabSheet;
Label31: TLabel;
Label32: TLabel;
Label33: TLabel;
Label34: TLabel;
TabSheet3: TTabSheet;
Label35: TLabel;
Label36: TLabel;
Label37: TLabel;
Label38: TLabel;
TabSheet8: TTabSheet;
Label39: TLabel;
Label40: TLabel;
Label41: TLabel;
Label42: TLabel;
Label43: TLabel;
Label44: TLabel;
Label45: TLabel;
Label46: TLabel;
DBEdit1: TDBEdit;
DBEdit2: TDBEdit;
DBEdit3: TDBEdit;
DBEdit4: TDBEdit;
DBEdit5: TDBEdit;
DBEdit6: TDBEdit;
sDBDateEdit1: TsDBDateEdit;
DBEdit7: TDBEdit;
DBEdit9: TDBEdit;
DBMemo1: TDBMemo;
DBEdit10: TDBEdit;
DBEdit8: TDBEdit;
DBComboBox1: TDBComboBox;
DBMemo2: TDBMemo;
DBEdit11: TDBEdit;
DBEdit12: TDBEdit;
DBEdit13: TDBEdit;
DBEdit14: TDBEdit;
DBEdit15: TDBEdit;
DBEdit16: TDBEdit;
DBEdit17: TDBEdit;
DBMemo3: TDBMemo;
Button1: TButton;
Button2: TButton;
DBEdit18: TDBEdit;
sDBLookupComboBox1: TsDBLookupComboBox;
Label1: TLabel;
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
editphone: Teditphone;
implementation
uses mainform, settings;
{$R *.dfm}
procedure Teditphone.Button2Click(Sender: TObject);
begin
main.table2.Edit;
main.Table2.FieldByName('name').AsString:=DBEdit1.Text;
main.Table2.FieldByName('surname').AsString:=DBEdit2.Text;
main.Table2.FieldByName('lastname').AsString:=DBEdit3.Text;
main.Table2.FieldByName('mphone').AsString:=DBEdit4.Text;
main.Table2.FieldByName('fax').AsString:=DBEdit5.Text;
main.Table2.FieldByName('phone').AsString:=DBEdit6.Text;
main.Table2.FieldByName('bdate').AsString:=DateToStr(sDBDateEdit1.Date);
main.Table2.FieldByName('Country').AsString:=DBEdit7.Text;
main.Table2.FieldByName('Region').AsString:=DBEdit18.Text;
main.Table2.FieldByName('City').AsString:=DBEdit9.text;
main.Table2.FieldByName('address').AsString:=DBMemo1.Text;
main.Table2.FieldByName('JobCountry').AsString:=DBEdit11.Text;
main.Table2.FieldByName('jobRegion').AsString:=DBEdit12.Text;
main.Table2.FieldByName('JobCity').AsString:=DBEdit13.Text;
main.Table2.FieldByName('Company').AsString:=DBEdit14.Text;
main.Table2.FieldByName('JobPhone').AsString:=DBEdit15.Text;
main.Table2.FieldByName('JobFax').AsString:=DBEdit16.Text;
main.Table2.FieldByName('Post').AsString:=DBEdit17.Text;
main.Table2.FieldByName('about').AsString:=DBMemo2.Text;
main.Table2.FieldByName('icq').AsString:=DBEdit10.Text;
main.Table2.FieldByName('e-mail').AsString:=DBEdit8.Text;
main.Table2.FieldByName('status').AsString:=DBComboBox1.Text;
main.Table2.FieldByName('jobaddress').AsString:=DBMemo3.Text;
main.Table2.FieldByName('Group').AsString:=sDBLookupComboBox1.Text;
main.Table2.Post;
main.Table2.Refresh;
close;
end;
procedure Teditphone.Button1Click(Sender: TObject);
begin
close;
end;
end.
unit authentication;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, sSkinProvider, sSkinManager, ExtCtrls;
type
Tlogin = class(TForm)
Edit1: TEdit;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
sSkinManager1: TsSkinManager;
sSkinProvider1: TsSkinProvider;
pmessage: TLabel;
Image1: TImage;
procedure Button1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure SpeedButton3Click(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure SpeedButton2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
login: Tlogin;
implementation
uses mainform, forgotpassword;
{$R *.dfm}
procedure Tlogin.Button1Click(Sender: TObject);
begin
if Edit1.Text = '1111' then
close
else
Tag:=1;
end;
procedure Tlogin.FormClose(Sender: TObject; var Action: TCloseAction);
begin
exit;
end;
procedure Tlogin.SpeedButton3Click(Sender: TObject);
begin
Tag:=1;
Close;
end;
procedure Tlogin.SpeedButton1Click(Sender: TObject);
var
f:textfile;
password:string;
i:integer;
begin
AssignFile(f,ExtractFilePath(ParamStr(0))+'\config\auth.dat');
Reset(f);
TRY
Read(f,password);
FINALLY
CloseFile(f);
end;
//Декодирование пароля
For i:=1 to Length(password) do
if(Ord(password[i])) < 255 then password[i]:=Chr(Ord(password[i]) - 2);
if Edit1.text = password then
begin
close;
MessageBeep(MB_ICONASTERISK);
PMessage.Font.Color:=clGreen;
Image1.Visible:=false;
//PMessage.Caption:='Добро пожаловать!';
end
else begin
MessageBeep(MB_ICONHAND);
Edit1.Clear;
PMessage.Font.Color:=clRed;
Image1.Visible:=true;
PMessage.Caption:='Доступ запрещен! Проверьте правильно ввода данных...';
end;
end;
procedure Tlogin.FormCreate(Sender: TObject);
begin
sSkinManager1.Active:=True;
sSkinManager1.SkinDirectory:=(ExtractFilePath(ParamStr(0))+'skins\');
end;
procedure Tlogin.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
If Key = VK_RETURN then SpeedButton1.Click;
end;
procedure Tlogin.SpeedButton2Click(Sender: TObject);
begin
forgot.Show;
end;
end. unit addphonenumber;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Mask, sMaskEdit, sCustomComboEdit, sTooledit, StdCtrls, ComCtrls,
DBCtrls, sDBLookupComboBox;
type
Taddphone = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label28: TLabel;
Label29: TLabel;
Label30: TLabel;
TabSheet2: TTabSheet;
Label31: TLabel;
Label32: TLabel;
Label33: TLabel;
Label34: TLabel;
TabSheet3: TTabSheet;
Label35: TLabel;
Label36: TLabel;
Label37: TLabel;
Label38: TLabel;
TabSheet8: TTabSheet;
Label39: TLabel;
Label40: TLabel;
Label41: TLabel;
Label42: TLabel;
Label43: TLabel;
Label44: TLabel;
Label45: TLabel;
Label46: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Edit8: TEdit;
Edit9: TEdit;
Edit10: TEdit;
Memo1: TMemo;
Edit11: TEdit;
Edit12: TEdit;
Edit13: TEdit;
Edit14: TEdit;
Memo2: TMemo;
Edit15: TEdit;
Edit16: TEdit;
Edit17: TEdit;
Edit18: TEdit;
Edit19: TEdit;
Memo3: TMemo;
Button1: TButton;
Button2: TButton;
sDateEdit1: TsDateEdit;
ComboBox1: TComboBox;
Label1: TLabel;
sDBLookupComboBox1: TsDBLookupComboBox;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
addphone: Taddphone;
implementation
uses mainform, settings;
{$R *.dfm}
procedure Taddphone.Button1Click(Sender: TObject);
begin
close;
end;
procedure Taddphone.Button2Click(Sender: TObject);
begin
If Edit1.Text = '' then begin
showmessage('Вы не заполнили обязательноее поле "Фамилия"!');
Exit;
End
else
begin
main.table2.Append;
main.Table2.FieldByName('name').AsString:=Edit1.Text;
main.Table2.FieldByName('surname').AsString:=Edit2.Text;
main.Table2.FieldByName('lastname').AsString:=Edit3.Text;
main.Table2.FieldByName('phone').AsString:=Edit4.Text;
main.Table2.FieldByName('mphone').AsString:=Edit5.Text;
main.Table2.FieldByName('fax').AsString:=Edit6.Text;
main.Table2.FieldByName('bdate').AsString:=DateToStr(sDateEdit1.Date);
main.Table2.FieldByName('Country').AsString:=Edit8.Text;
main.Table2.FieldByName('Region').AsString:=Edit9.Text;
main.Table2.FieldByName('City').AsString:=Edit10.Text;
main.Table2.FieldByName('address').AsString:=Memo1.Text;
main.Table2.FieldByName('JobCountry').AsString:=Edit11.Text;
main.Table2.FieldByName('jobRegion').AsString:=Edit12.Text;
main.Table2.FieldByName('JobCity').AsString:=Edit13.Text;
main.Table2.FieldByName('Company').AsString:=Edit14.Text;
main.Table2.FieldByName('JobPhone').AsString:=Edit15.Text;
main.Table2.FieldByName('JobFax').AsString:=Edit16.Text;
main.Table2.FieldByName('Post').AsString:=Edit17.Text;
main.Table2.FieldByName('JobAddress').AsString:=Memo2.Text;
main.Table2.FieldByName('icq').AsString:=Edit18.Text;
main.Table2.FieldByName('e-mail').AsString:=Edit19.Text;
main.Table2.FieldByName('status').AsString:=ComboBox1.Text;
main.Table2.FieldByName('about').AsString:=Memo3.Text;
main.Table2.FieldByName('Group').AsString:=sDBLookupComboBox1.Text;
main.Table2.Post;
main.Table2.Refresh;
close;
end;
end;
end.
unit aboutfrom;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, acPNG, ExtCtrls, StdCtrls, sGroupBox;
type
Tabout = class(TForm)
Image1: TImage;
Label2: TLabel;
sGroupBox1: TsGroupBox;
private
{ Private declarations }
public
{ Public declarations }
end;
var
about: Tabout;
implementation
{$R *.dfm}
end.
Додаток В
Роздрук
результатів роботи програми
Рисунок В 1 – Форма «Телефонний довідник» .
Рисунок В 2 – Форма «Нотатки» .
На формі показано нотаток який зберігається в базі даних та які функції доступні для роботи з ним.
Рисунок В 3 – Форма «Налаштування програми».
Рисунок В 4 – Форма «Повідомлення».
