Телефонный справочник

Содержание

Введение …………………………………………….…………………………...3

Глава 1. Среда визуального программирования Delphi. ……..…………..…..4

1.2 Компоненты Borland Delphi 7 использованные при разработке PhoneBook……..…………………………………….…………………………….4

Глава 2. Описание программы PhoneBook………………..…………………....8

2.1 Вкладка «Настройки»………………………….………………..…………...9

2.2. Общие параметры……………………………...……………………………9

2.3. Параметры телефонной книги...…………………………………………….9

2.4 Параметры экспорта в Excel и HTML……………………………………..10

2.5 Параметры «Заметок»……………………………………………………….10

2.6 Опция «Перетаскивать по словам» ………………………………………..11

2.7 Техподдержка………………………………………………………………..11

2.8 Мини браузер………………………………………………………………..11

2.9 Время и дата…………………………………………………………………12

2.10 Вкладка «Телефонная книга»…..………………………………………...14

2.11 Сортировка контактов по группам……………………………………….14

2.12 Поиск контактов по имени………………………………………………..15

2.13 Экспорт контактов в Excel и HTML…..………………………………….15

2.13.1 Экспорт в Excel…..……………………………………………………....15

2.13.2 Экспорт в HTML….……………………………………………………...20

2.14 Добавление новой записив телефонный справочник……………………………………………………………………….21

2.15 Печать документа………………………………………………………….23

2.16 Сохранить как……………………………………………………………...24

2.17 Работа с буфером обмена….………………………………………………24

2.18 Обработка и исправление текста………………………………………….24

2.19 Заставка программы……………………………………………………….25

2.19.1Получение информации о пользователе и владельце ПК……………...25

2.19.2 Создание заставки программы…………………………………………..26

2.20 Ограничения программы…………………………………………………..27

2.20.1 «Демо» версия……………………………………………………………28

Глава 3. Требования по обеспечению пожарной безопасности……………………………………………………………………..31

3.1  Общие  требования пожарной безопасности:……………………………..31

3.2  Правила  поведения при пожаре:…………………………………………..32

3.3 Организация мероприятий при пожаре:…………………………………...33

3.4 Ответственность…………………………………………………………….34

Приложение1……..…………………………………………………………….36

Приложение 2…..………………………………………………………………65

Литература………………………………………………………………………66 
 
 
 

Введение

    Программа «Телефонный справочник» была разработана для удобного хранения телефонных номеров, адресов и прочей информации на Вашем персональном компьютере. Программа имеет удобный и понятный интерфейс, систему быстрого поиска по имени, функцию хранения, ваших заметок. Вы можете легко распечатать нужную вам заметку.

    В наше время появилось огромное количество номеров телефонов, адресов электронной почты и много другой различной информации, которое время от времени забывается или теряется. Поэтому, я решил создать программу, в которой вы можете хранить всю эту важную информацию не боясь что она потеряется, или вы ее забудете. Моя программа совмещает в себе несколько важных и нужных функций для хранения личной информации, это:

    1)Заметки – Вы можете здесь записывать любую информацию, сохранять какие либо ссылки к важным веб узлам, и т п.

    2) Телефонный справочник – Здесь Вы можете записывать все важные вам телефонные номера, контактные данные важных вам людей.

    3) Систему технической поддержки

    4) Мини браузер для работы в интернете.

    Задачей данной работы является создание базы данных «Телефонный справочник», с использованием языка программирования Delphi 7.

    Причина, по которой я выбрал именно эту  тематику для своей курсовой, является актуальность данного вопроса, а в силу своей актуальности она обязательно найдет свое место на рынке.

     

 

 

      Глава 1. Среда визуального программирования Delphi.

Внешний вид среды программирования Delphi отличается от многих других из тех, что можно увидеть в Windows. К примеру, Borland Pascal for Windows 7.0, Borland C++ 4.0, Word for Windows, Program Manager - это все MDI приложения и выглядят по-другому, чем Delphi. MDI (Multiple Document Interface) - определяет особый способ управления нескольких дочерних окон внутри одного большого окна.

     Среда Delphi же следует другой спецификации, называемой Single Document Interface (SDI), и состоит из нескольких отдельно расположенных окон. Это было сделано из-за того, что SDI близок к той модели приложений, что используется в Windows 95.

     Если  Вы используете SDI приложение типа Delphi, то уже знаете, что перед началом работы лучше минимизировать другие приложения, чтобы их окна не загромождали рабочее пространство. Если нужно переключиться на другое приложение, то просто щелкните мышкой на системную кнопку минимизации Delphi. Вместе с главным окном свернутся все остальные окна среды программирования, освободив место для работы других программ.

     1.2  Основные  компоненты Delphi использованные при разработки программы:

Popup menu -  Контекстное меню привязано к конкретным компонентам. Оно всплывает, если во время, когда данный компонент в фокусе, пользователь щелкнет правой кнопкой мыши. Обычно в контекстное меню включают те команды главного меню, которые в первую очередь могут потребоваться при работе с данным компонентом

ActionList - Начиная с Delphi 4 появился инструментарий, который, не добавляя никаких принципиально новых возможностей, позволяет систематизировать и упорядочить разработку объектно-ориентированных приложений. К тому же грамотное его использование позволяет сэкономить немало времени при проектировании. Для организации диспетчеризации событий введены следующие понятия.  Действие (action) — реализация некоторого поведения, являющегося реакцией на поступок пользователя, такой, как щелчок на кнопке или на разделе меню — инициаторе действия. Разработан класс TAction и ряд его наследников, реализующих многие стандартные действия, характерные для приложений Windows. Список действий — компонент типа ActionList, содержащий предусмотренные в приложении действия. Это интерфейс разработчика, упорядочивающий его работу с действиями в процессе проектирования. Редактор связей — объект типа TActionList, который поддерживает связь между действиями и инициаторами действий. Редактор связей определяет, какое действие должно выполняться для данного инициатора. Цель действия — объект, в котором отражается результат действия.

  MainMenu - В Delphi имеется два компонента, представляющие меню: MainMenu — главное меню, и PopupMenu — всплывающее меню. Оба компонента расположены на странице Standard. Эти компоненты имеют много общего.

Обычно  на форму помещается один компонент  MainMenu. В этом случае его имя автоматически заносится в свойство формы Menu. Но можно поместить на форму и несколько компонентов MainMenu с разными наборами разделов, соответствующими различным режимам работы приложения. В этом случае во время проектирования свойству Menu формы присваивается ссылка на один из этих компонентов. А в процессе выполнения в нужные моменты это свойство можно изменять, меняя соответственно состав главного меню приложения.

TImageList - Компонент ImageList представляет собой набор изображений одинаковых размеров, на которые можно ссылаться по индексам, начинающимся с 0. Во многих рассмотренных ранее компонентах (меню, списках и др.) встречались свойства, представляющие собой ссылки на компонент ImageList. Этот компонент позволяет организовать эффективное и экономное управление множеством пиктограмм и битовых матриц. Он может включать в себя монохромные битовые матрицы, содержащие маски для отображения прозрачности рисуемых изображений.

ColorDialog - Компонент ColorDialog вызывает диалоговое окно выбора цвета. В нем пользователь может выбрать цвет из базовой палитры или, нажав кнопку Определить цвет, раскрыть дополнительную панель позволяющую синтезировать цвет, отличный от базовых. Добавить в набор в палитру дополнительных цветов на левой панели и использовать его в дальнейшем.

ApplicationEvents - В классе TApplication определено множествособытий, которые бывают полезными для организации приложения. Начиная с Delphi 5, разработчиками был введен компонент ApplicationEvents (вкладка Additional), который облегчил использование событий этого класса. Этот компонент перехватывает события объекта Application, поэтому обработчики этих событий теперь можно писать как обработчики событий невизуального компонента ApplicationEvents. На каждой форме приложения можно разместить свой компонент ApplicationEvents. События объекта Application будут передаваться всем этим компонентам. Если требуется передавать событие, прежде всего, какому-то одному из них, то нужно применить к нему метод Activate, который поставит его в начало очереди компонентов ApplicationEvents. Если не требуется, чтобы другие компоненты ApplicationEvents получали события, нужно применить к этому привилегированному компоненту метод CancelDispatch. Тогда после обработки события в данном компоненте другие компоненты ApplicationEvents вообще не будут реагировать на эти события.

SaveDialog - Компоненты OpenDialog — диалог «Открыть файл» и SaveDialog — диалог «Сохранить файл как...», пожалуй, используются чаще всего, в большинстве приложений.

FontDialog  - Компонент FontDialog вызывает диалоговое окно выбора атрибутов шрифта. В нем ползователь может выбрать имя шрифта, его стиль (начертание), размер и другие атрибуты.

Timer - Компонент Timer позволяет задавать в приложении интервалы времени. Таймер находит многочисленные применения: синхронизация мультипликации, закрытие каких-то окон, с которыми пользователь долгое время не работает, включение хранителя экрана или закрытие связей с удаленным сервером при отсутствии действий пользователя, регулярный опрос каких-то источников информации, задание времени на ответ в обучающих программах — все это множество задач, в которых требуется задавать интервалы времени, решается с помощью таймера.

TListView - Компоненты TreeView и Outline служат для отображения иерархических данных в виде дерева, в котором пользователь может выбрать нужный ему узел или узлы. Иерархическая информация может быть самой разной: структура некоторого предприятия, структура документации учреждения, структура отчета и т.п. С каждым узлом дерева могут быть связаны некоторые данные.

Edit - Компонент Delphi Edit представляет собой однострочное текстовое поле, служащее для ввода данных пользователем. Основным свойством компонента Delphi Edit, передающим введённую информацию, является свойство Edit1.Text типа String. .

Memo - Компонент Delphi Memo это простой текстовый редактор. Delphi Memo позволяет вводить многострочный текст с клавиатуры, загружать его из файла, редактировать и сохранять в файл текстового формата.

StatusBar - Компонент StatusBar представляет собой ряд панелей, отображающих полосу состояния в стиле Windows. Обычно эта полоса размещается внизу формы.

TPageControl - Многостраничные панели позволяют экономить пространство окна приложения, размещая на одном и том же месте страницы разного содержания. многостраничного компонента PageControl.  
 
 
 
 

Глава 2. Описание программы PhoneBook

Полное  описание программы и ее возможностей.

Программа PhoneBook автоматически сохраняет все настройки установленные пользователем. Это размер формы, настройки шрифтов и размеров текста. После повторного запуска программы, откроется та вкладка, с которой Вы завершили работу программы.

Все настройки программы, сохраняются с помощью ini – файлов. Одно из главных преимуществ INI файлов заключается в том, что эти файлы поддерживают переменные разных типов (String, Integer, Boolean). Также несравненным плюсом является возможность доступа к определенной записи, без изменения остальных.

Переменная  для ini-файлов: cfgini:tinifile;

Сохранение  настроек шрифтов:

    filesetattr(cfgini.FileName,$00);

    fgini.WriteInteger('Notes','FontSize',files.Font.size);        cfgini.WriteString('Notes','FontFace',files.Font.Name);

Обновление  отображения иконок для узлов  каталога:

cfgini:=tinifile.Create(dir+'PhoneBook.ini'); // Создаем файл конфигурации

  try

with PhoneBook do begin // Устанавливаем новые настройки

FOR I:=1 TO LIST.ITEMS.COUNT-1 DO BEGIN

       if cfgini.ValueExists('Group',List.Items[i].Text) then begin

          if list.items[i].count>0 then begin

             List.Items[i].ImageIndex:=1;

             List.Items[i].SelectedIndex:=1;

          end

          else begin

             List.Items[i].ImageIndex:=3;

             List.Items[i].SelectedIndex:=3;

          end;

       end

       else begin

          list.items[i].ImageIndex:=2;

          list.items[i].SelectedIndex:=2;

       end;

    END;

    list.Refresh; // Обновляем настройки

end;

except

   writelog(log,'FileReadError(PhoneBook.ini)','UpdateItemsIcons'); // Обновляем иконки каталога.

  end;

cfgini.Free;

     

2.1 Вкладка «Настройки».

 Вкладка «Настройки» показана на рисунке 1. 

    Вкладка «Настройки», рисунок  1.

2.2 Общие параметры.

      Функция «Общие параметры» позволяет настроить  положение заголовков страниц (вкладок) программы.

      Case combobox1.ItemIndex of

    0:PageControl1.TabPosition:=tpTop; Положение вкладок сверху.

    1:PageControl1.TabPosition:=tpBottom; Положение вкладок снизу.

    2:PageControl1.TabPosition:=tpRight; Положение вкладок справа.

    3:PageControl1.TabPosition:=tpLeft; Положение вкладок слева.

end; 

2.3 Параметры телефонной книги.

  Функция  «Параметры телефонной книги»  позволяет показать или скрыть поля: «Группы» и «Коментарии».

  Groups.Visible:= CheckBox2.Checked; Показать или скрыть панель групп.

comment.Visible:= CheckBox3.Checked; Показать или скрыть коментарии.

  splitter1.align:=alNone;

  splitter1.top:=splitter1.top-50;

  splitter1.align:=alBottom;

2.4. Параметры Экспорта контактов из телефонной книги в Excel и HTML.

  Вы можете выбрать какие именно поля экспортировать в  Excel и HTML.

Для это  нужно выбрать, какие поля Вам  нужно экспортировать. Выбранные  поля отметить галочкой. По умолчанию выбраны все поля.

 Настройка HTML:

Цвет фона:

if colorD.Execute then

     bgcolor.font.Color:=colorD.Color;

Цвет текста:

if colorD.Execute then

     textcolor.font.Color:=colorD.Color;

Цвет рамки:

if colorD.Execute then

     bordercolor.font.Color:=colorD.Color; 

2.5 Параметры «Заметок».

  Настройки шрифта:

var fs:string;

    cfgini:tinifile; Переменная ini файлов.

begin

cfgini:=tinifile.Create(dir+'PhoneBook.ini');

  try

   fs:='0000';  //начальные параметры стиля

   fontdialog1.Font := files.font;

   if fontdialog1.Execute then begin

     files.Font:=fontdialog1.Font;

     //запомним и установим выбранные параметры

     filesetattr(cfgini.FileName,$00);

     cfgini.WriteInteger('Notes','FontSize',files.Font.size);

     cfgini.WriteString('Notes','FontFace',files.Font.Name);

     // закодируем и сохраним стиль шрифта

     if fsBold in files.font.Style then fs[1]:='1';

     if fsItalic in files.font.Style then fs[2]:='1';

     if fsUnderline in files.font.Style then fs[3]:='1';

     if fsStrikeOut in files.font.Style then fs[4]:='1';

     cfgini.WriteString('Notes','FontStyle', fs);

   end;

except

    writelog(log,'FileWriteError('+cfgini.FileName+')','RemoveExecute');

  end;

cfgini.Free; 

2.6 Опция «Перетаскивать по словам» .

Автоматический  перенос слов на следующую строку. В Delphi данная опция называется WordWrap.

Код функции  «Перетаскивать по словам»

files.WordWrap:=checkbox1.Checked;

if files.WordWrap then

   files.ScrollBars:=ssVertical

else

   files.ScrollBars:=ssBoth;

n8.Checked:=checkbox1.Checked;

2.7 Техподдержка.

На рисунке 2 представлена форма технической  поддержки программы.  Данная опция  создана с целью облегчить  работу с программой для пользователей. Любой пользователь может задать интересующий его вопрос, указав свой адрес электронной почты, и в ближайшее время  получит ответ на свой вопрос средствами электронной почты. Текст сообщения не должен содержать более 2500 символов. Для того, чтобы воспользоваться этим сервисом, необходимо интернет соединение.

Рисунок 2. «Техподдержка».

На примере  рассматривается отправка сообщение  электронной почты средствами Delphi. Для отправки сообщения нужны следующие компоненты:

idMessage, idSMTP, Edit и Memo.

IdMessage – Используем для отправки сообщения.

IdSMTP – Используем для подключению к серверу почты.

Edit – Необходим для указания данных пользователя, например E-Mail.

Memo – Поле memo используем как поле для ввода текста сообщения.

Код формы «Техподдержка»:

if Edit2.Text='' then begin

showmessage('Ошибка! Вы забыли указать  E Mail!'); Проверяем введен ли E-Mail пользователя.

beep

end

else Если E-Mail введен

begin

  idSmtp1.Host:='smtp.mail.ru'; Подключаемся к серверу почты

  BitBtn1.Enabled:=false;

BitBtn1.Caption:='Отправка...';

idSmtp1.Port:=25;

idSmtp1.Username:='E-Mail Техподдержки'; Логинимся в почте техподдержки.

idSmtp1.Password:='Пароль';

idMessage1.Body.Text:= 'User E-Mail: ' + Edit2.Text + ' '  + Memo1.Text; Текст сообщения

idMessage1.From.Text:='Mazahak[email protected]';

idMessage1.Recipients.EMailAddresses:='Mazahaka2011@bk.ru';

idMessage1.Subject:=Edit1.Text;

idSmtp1.Connect(); Подключаемся

if idSmtp1.Connected=true then; Если соединение установлено

idSmtp1.Send(idmessage1); Отправляем сообщение

idSmtp1.Disconnect; Отключаемся

    BitBtn1.Enabled:=true;

BitBtn1.Caption:='Отправить сообщение' ;

  showmessage('Ваше сообщение успешно отправлено!' + ' Ждите ответа по E Mail!');

beep

end; 

2.9 Мини браузер

В программе  имеется, встроенный мини браузер,  который всегда будет под рукой  пользователей работающих на данной программе. Браузер сделан на «движке» всем известного браузера Internet Explorer.

Достоинства браузера:

- Не  запоминает историю посещенных  сайтов.

- Пользователям  не придется все время чистить историю посещенных сайтов.

- Не  запоминает логины и пароли  от почты, социальных сетей…

- Простой  и понятный интерфейс. 

На рисунке 3 представлена окно мини браузера.

 

Рисунок 3. Мини браузер. Интерфейс может изменятся в зависимости от версии программы. 

Код мини браузера:

procedure TForm8.FormCreate(Sender: TObject);

begin

  WB.Navigate('www.google.com'); Запуск домашней страница при открытии браузера

end;

procedure TForm8.Button1Click(Sender: TObject);

begin

WB.GoBack; Кнопка «Назад»

end;

procedure TForm8.Button2Click(Sender: TObject);

begin

wb.GoForward;   Кнопка «Вперед»

end;

procedure TForm8.Button3Click(Sender: TObject);

begin

WB.Stop; Кнопка «Стоп»

end;

procedure TForm8.Button4Click(Sender: TObject);

begin

wb.Refresh; Кнопка «Обновить»

end;

procedure TForm8.WBProgressChange(Sender: TObject; Progress,

  ProgressMax: Integer);

begin

  ProgressBar1.Max:=ProgressMax; Индикатор загрузуи страницы

ProgressBar1.Position:=Progress;

end;

procedure TForm8.WBStatusTextChange(Sender: TObject;

  const Text: WideString);

begin

StatusBar1.SimpleText:=Text;

end;

procedure TForm8.Button5Click(Sender: TObject);

begin