Базы данных. Создание программы "Телефонный справочник"

Автор работы: Пользователь скрыл имя, 13 Марта 2011 в 20:05, курсовая работа

Описание работы

Процесс разработки в Delphi предельно упрощен. В первую очередь это относится к созданию интерфейса, на который уходит 80% времени разработки программы. Вы просто помещаете нужные компоненты на поверхность Windows-окна (в Delphi оно называется формой) и настраиваете их свойства с помощью специального инструмента (Object Inspector).

Содержание работы

Введение……………………………………………………….3
Назначение и область применения…………….5
Постановка задачи и разработка
Алгоритма решения задачи…………………….6
Заключение……………………………………………………15
Список использованной литературы………………………..16

Файлы: 1 файл

Создание программы телефонный справочник.doc

— 220.00 Кб (Скачать файл)

    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(TPhoneForm, PhoneForm);

    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. Никита Культин.  Основы программирования в Delphi 7. Самоучитель.2002г.

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','ByStreet');

  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(Sender: TObject);

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.DisplayText;

    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(MyPopupMenuItem[i]);

   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_keydown, vk_up, 0);

      vk_Down: SendMessage(DBGrid1.Handle,wm_keydown, vk_down, 0);

      vk_Prior: SendMessage(DBGrid1.Handle,wm_keydown, vk_Prior, 0);

      vk_Next: SendMessage(DBGrid1.Handle,wm_keydown, vk_Next, 0);

      vk_return: Search.OnClick(Search);

            vk_f1: Application.HelpCommand(HELP_CONTENTS, 0);

      else handled := false;

    end;

  end;

end; 

procedure TPhoneForm.SearchClick(Sender: TObject);

var

filters: string;

i: integer;

begin

Информация о работе Базы данных. Создание программы "Телефонный справочник"