Автор работы: Пользователь скрыл имя, 13 Марта 2011 в 20:05, курсовая работа
Процесс разработки в Delphi предельно упрощен. В первую очередь это относится к созданию интерфейса, на который уходит 80% времени разработки программы. Вы просто помещаете нужные компоненты на поверхность Windows-окна (в Delphi оно называется формой) и настраиваете их свойства с помощью специального инструмента (Object Inspector).
Введение……………………………………………………….3
Назначение и область применения…………….5
Постановка задачи и разработка
Алгоритма решения задачи…………………….6
Заключение……………………………………………………15
Список использованной литературы………………………..16
on E: Exception do
begin
MessageDlg(e.Message, mtError, [mbOk],0);
PostMessage(MainFOrm.Handle, MM_DATAERROR, 0, 0);
end;
end;
Invalidate;
end;
procedure TMainForm.ProgressAOM (var MSG: tagMSG; var Handled: boolean);
begin
if MSG.message = MM_OKSTART then
begin
Timer1.Enabled := false;
Application.CreateForm(
MainFOrm.Hide;
PhoneForm.Show;
Application.OnMessage := PhoneForm.AOM;
end;
end;
function TMainForm.SearchFile(FileName: string): boolean;
var
CurrFile : TSearchRec;
begin
if FindFirst(GetCurrentDir +'\'+FileName, faAnyFile, CurrFIle)=0
then Result := true
else Result := false;
end;
procedure TMainForm.DataError(var Message: TMessage);
begin
Close;
end;
procedure TMainForm.Timer1Timer(Sender: TObject);
begin
if IsFirst then
begin
IsFirst := false;
FStartTime := 0; // GetTickCount;
end;
if IsCanStart then
begin
Tick := GetTickCount;
if Tick > (FStartTime + 0) // 1000
then PostMessage(MainFOrm.Handle, MM_OKSTART, 1, 0);
end
end;
procedure TMainForm.EndThread(var Message: TMessage);
begin
Image1.Visible := true;
Caption := '';
lbPersent.Visible := false;
lbMessage.Visible := false;
ProgressBar1.Visible := false;
IsCanStart := true;
end;
end.
После индексации
базы данных и проверки её на существование
запускается программа для
Рис.2 Главное
окно программы.
На рисунке 3 показан результат поиска в базе данных по номеру телефона.
Рис. 3 Поиск в базе данных по номеру телефона.
База данных
состоит из шести полей : номер
телефона, ФИО, улица, номер дома,
номер квартиры, категория.Что соответствует
полям в базе данных: номер телефона –
NUMTEL, ФИО - FAMIL, улица - STREET, номер дома - HOUSE,
номер квартиры - KVART, категория – PR09.
Заключение
В результате выполнения
курсовой работы мною было создано приложение
для работы с базой данных (dBase) создание
алиасов к базе данных.
Список использованной литературы
1. А. Я. Архангельский Программирование в Delphi 7.2003г.
2. Никита Культин.
Основы программирования в
3. Delphi 7. Учебный курс. Бобровский С.
5.Бобровский С.И. Delphi 5 – М.: Питер, 2002
6. Delphi 5.0, учебный курс, Фараонов В.В., ISBN 5-8952-020-4, 400 с
7. Фаронов В. В. DELPHI 6: Учебный курс (+ дискета) – СПб: Питер, 2002.
8. Фаронов В.В. Программирование
баз данных в Deiphi 7. Учебный курс.
приложение
листинг программы (TElDov.pas)
unit TElDov;
interface
uses
Windows, SysUtils, Thread, Progress, ExtCtrls, ComCtrls, Menus,
ToolWin, DBCtrls, ImgList, Classes, Controls, StdCtrls, Grids,
DB, DBTables, DBGrids,
Forms, Messages, Dialogs,Clipbrd;
type
TPhoneForm = class(TForm)
DataSource1: TDataSource;
Table1: TTable;
StatusBar1: TStatusBar;
GroupBox1: TGroupBox;
Search: TButton;
ToolBar1: TToolBar;
ExitButton: TToolButton;
SearchButton: TToolButton;
HelpButton: TToolButton;
DBGrid1: TDBGrid;
ImageList1: TImageList;
SortButton: TToolButton;
PopupMenu1: TPopupMenu;
ImageList2: TImageList;
ToolButton2: TToolButton;
ToolButton3: TToolButton;
ToolButton4: TToolButton;
ToolButton5: TToolButton;
ToolButton6: TToolButton;
ToolButton7: TToolButton;
ToolButton8: TToolButton;
PopupMenu2: TPopupMenu;
DBNavigator1: TDBNavigator;
procedure FormCreate(Sender: TObject);
procedure SearchClick(Sender: TObject);
procedure AOM(var Msg: tagMSG; var Handled: Boolean);
procedure MyPopupHandler(Sender: TObject);
procedure MyPopupHandler2(Sender: TObject);
procedure MyEditPopup(Sender: TObject; MousePos: TPoint; var Handled: Boolean);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure MInMaxSize(var Message: TMessage); message WM_GETMINMAXINFO;
procedure N20Click(Sender: TObject);
procedure N13Click(Sender: TObject);
procedure N14Click(Sender: TObject);
procedure N15Click(Sender: TObject);
procedure N16Click(Sender: TObject);
procedure ExitButtonClick(Sender: TObject);
procedure SearchButtonClick(Sender: TObject);
procedure HelpButtonClick(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
procedure CreatePopupFields;
procedure UpdateStatusBar;
procedure CalculateEditSize;
procedure SortMode (Sender: tObject);
procedure ReadIni;
procedure WriteIni; // Ini-file
public
end;
var
PhoneForm: TPhoneForm;
Inputs : array [0..4] of TEdit;
MyThread: DataThread;
bool: boolean;
ColumnIndex: integer;
const
SortName : array[0..2] of string =('по Телефону','по Имени','по Улице');
IndexName : array [0..2]
of string =('ByNumTel','ByFamil','
COPY_TO_CLIPBOARD = 'Копировать';
PASTE_FROM_CLIPBOARD
= 'Вставить';
function IndexOfItem(Item:
string): integer;
implementation
uses IniFiles, DBITypes, DBIProcs, Graphics,ShellApi;
{$R *.dfm}
procedure TPhoneForm.FormCreate(Sender: TObject);
begin
Table1.TableName := sDataFile;
Table1.Open;
CreatePopupFields;
CalculateEditSize;
UpDateStatusBar;
ReadIni;
Application.onMessage := Aom;
Application.HelpFile := sHelpFile;
end;
procedure TPhoneForm.MyPopupHandler(
begin
if Sender is TMenuItem then with (Sender as TMenuItem) do
begin
case tag of
0..2: begin Table1.IndexName := IndexName[(Sender as TMenuItem).tag ];
SortMode(Sender);
end;
4: Clipboard.AsText := DBGrid1.SelectedField.
end;
UpdateStatusBar;
end;
end;
procedure TPhoneForm.CreatePopupFields;
var
i: integer;
MyPopupMenuItem : array [0..4] of TMenuItem;
MenuItem: TMenuItem;
begin
for i := 0 to 4 do
begin
Inputs[i] := TEdit.Create(self);
Inputs[i].Parent := GroupBox1;
Inputs[i].PopupMenu := PopupMenu2;
Inputs[i].OnContextPopup := MyEditPopup;
Inputs[i].Tag := i;
end;
for i := 0 to 4 do with PopupMenu1 do
begin
MyPopupMenuItem[i] := TMenuItem.Create(self);
if i<3 then MyPopupMenuItem[i].Caption := SortName[i];
MyPopupMenuItem[i].Tag := i;
MyPopupMenuItem[i].OnClick := MyPopupHandler;
PopupMenu1.Items.add(
end;
MyPopupMenuItem[3].Caption := '-';
MyPopupMenuItem[4].Caption := COPY_TO_CLIPBOARD;
MyPopupMenuItem[4].ShortCut := ShortCut(Word('C'), [ssCtrl]);
PopupMenu1.Items[0].Checked
:= true;
MenuItem := TMenuItem.Create(self);
MenuItem.Caption := PASTE_FROM_CLIPBOARD;
MenuItem.OnClick := MyPopupHandler2;
PopupMenu2.Items.add(MenuItem)
MyEditPopup(nil, Point(0,0), bool);
end;
procedure TPhoneForm.CalculateEditSize;
var
i: integer;
OffSet: integer;
begin
offset :=13;
for i := 0 to 4 do
begin
Inputs[i].Left := Offset;
Offset := Offset + DbGrid1.Columns[i].width + 8;
Inputs[i].Width := DBGrid1.Columns[i].width;
Inputs[i].Top := 24;
Inputs[i].MaxLength :=Table1.Fields[i].Size;
end;
end;
procedure TPhoneForm.UpdateStatusBar;
var SortMode: string;
begin
statusBar1.Panels[0].Text := ' Найдено абонентов: '+ InttoStr(Table1.RecordCount);
Sortmode := SortName[0];
if PopupMenu1.Items[1].Checked then sortMode := SortName[1];
if PopupMenu1.Items[2].Checked then sortMode := SortName[2];
statusbar1.Panels[1].Text := ' Отсортировано: '+SortMode;
end;
procedure tPhoneForm.AOM(var Msg: tagMSG; var Handled: Boolean);
var key : word;
begin
handled := false;
if msg.message = Wm_keydown then
begin
key := msg.wParam;
handled := true;
case key of
vk_up: SendMessage(DBGrid1.Handle,wm_
vk_Down: SendMessage(DBGrid1.Handle,wm_
vk_Prior: SendMessage(DBGrid1.Handle,wm_
vk_Next: SendMessage(DBGrid1.Handle,wm_
vk_return: Search.OnClick(Search);
vk_f1: Application.HelpCommand(HELP_
else handled := false;
end;
end;
end;
procedure TPhoneForm.SearchClick(Sender: TObject);
var
filters: string;
i: integer;
begin
Информация о работе Базы данных. Создание программы "Телефонный справочник"