Рефераты. Записная книжка на Delphi 7

with finddialog1 do begin

{Начальное значение поиска текста, выделенный в Мемо}

findtext:=memo1.SelText;

// позиционирование окна диалога внизу Memo

position:=point(mainform.Left,mainform.Top+memo1.Top+memo1.Height) ;

// удолнеия из диалога кнопок “Вверх”, “Вниз”, “Только слово цылеком”

options:=options + [frhideupdown,frhidewholeword] ;

execute; //запуск диалога

end;

end;

Теперь в OnFind компонента FindDialog1 вставляем следующий код:

with finddialog1 do begin

 if frmatchcase in options

//поиск с учётом регистра 

then Memo1.SelStart:=pos(findtext,copy(memo1.Lines.Text,spos+1,Length(memo1.Lines.text)))+spos-1

    else

//поиск без учета регистра

Memo1.SelStart:=pos(ansilowercase(findtext),ansilowercase(copy(memo1.Lines.Text,spos+1,Length(memo1.Lines.text))))+spos-1;

        if memo1.SelStart>=spos

         then begin

      //выделение найденного текста

         memo1.SelLength:=Length(findtext);

    //изменение начальной позиции поиска     

  spos:=memo1.SelStart + memo1.SelLength+1;

       end

     else

- 10 -

    if messagedlg('Текст"'+findtext+'"ненайден',mtconfirmation,[mbok],0) <>mrok

   then

  closedialog;

 memo1.SetFocus;

end;

Теперь нужно объявить переменную Spos, вверху окна редактора кода нужно найти оператор VAR, перед всеми процедурами и функциями и написать после него Spos:integer;

Переменная Spos сохраняет позицию, начиная с которой надо проводить поиск.


2.     “Отменить”


  Для отмены последнего изменения текста, компонент Memo имеет процедуру Undo.

Этот код нужно вставить в кнопку:


Memo1.Undo; //отменить последние действие


3.     “Копировать”


  Для копирования, в буфер обмена, выделенного текста в компоненте Memo есть процедура CopyToClipboard. Эту процедуру надо вставить в кнопку:

Memo1.CopyToClipboard; // скопировать текст в буфер обмена


4.     “Вырезать”


  Для вырезания выделенного текста, в буфер обмена, в компоненте Memo есть процедура CutToClipboard. Эту процедуру надо вставить в кнопку:


Memo1.CutToClipboard; // вырезание текста в буфер обмена


5.     “Вставить”


Для вставки  текста который лежит в буфере обмена в компоненте Memo есть процедура PasteFromClipboard. Эту процедуру надо вставить в кнопку:

Memo1.PasteFromClipboard; // вставить текст из буфера обмена


6.     “Очистить”


  Для того чтобы очистить окно Memo от текста, этот компонент имеет процедуру Clear.

 Эту процедуру вставляем в кнопку:

Memo1.Clear; // очистить Memo от  текста


7.     “Шрифт”


  Для изменения шрифта в Delphi есть компонент FontDialog. Через его свойство Font


- 11-

можно изменять свойства разных компонентов имеющие это свойство, в том числе и

компонента Memo. Переносим этот компонент с закладки Dialogs на форму и в процедуре OnClick кнопки пишем следующий код:

if FontDialog1.Execute then begin // запустить окно FontDialog1

Memo1.Font:=Fontdialog1.Font; // присвоить значения FontDialog1  компоненту Memo1

 

8.     “Дата и время”


  Для того чтобы вставить в Memo1 дату и время есть процедура DateTimeToString. Вставим следующий код в процедуру кнопки OnClick:

   var TD: String; //переменная в которую занесётся дата и время

   begin

  {Заносим в переменную TD  дату с параметрами: «Дата» «Месяц» «Год» и время с парамтрами «Часов» «Минут» «Секунд»}

   DateTimeToString(TD,'dd mmmm yyyyyy "г." hh:nn:ss ',Now);

   Memo1.SelText:= TD; // вставить на место курсора дату и время которое лежит в TD

Настройка главного меню закончено.

Меню: «Экстра» оставляем незаполненным, т.к. нужно создать  нужные  программы.

Создание часов на главной форме

  Для показа времени в Delphi есть ещё одна процедура FormatDateTime, но это процедура показывает время в данный момент когда она была вызвана, для того что каждую секунду обновлялось время, а то есть показывала время, нужно использовать компонент Timer, который находиться на закладке System, палитры компонентов Delphi.

Переносим Timer  на форму и в его  процедуре OnTimer нужно вставить следующий код:


Label1.Caption:=FormatDateTime('Сейчас: '+' hh:mm:ss AM/PM', Now()); {Изменяем надпись на Label1 на: “Сейчас: ‘Часы’:‘Минуты’:‘Секунды’ ‘AM’ или ‘PM’ ”}

Сохранение настроек программы

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

uses inifiles;

var

  IniFile: TIniFile;

begin

IniFile := TIniFile.Create('Notebook.ini'); // создание ini файла, если его не существует

IniFile.WriteString('MainOptions', 'Base',s);// записать значение переменной S

{Сохранить имя шрифта, компонента Memo1}

IniFile.WriteString('MainOptions', 'Name font',memo1.Font.Name);

{Сохранить размер шрифта, компонента Memo1}

IniFile.WriteInteger('MainOptions', 'Size', memo1.Font.Size);

{Сохранить цвет шрифта, компонента Memo1}

IniFile.WriteInteger('MainOptions', 'Color',memo1.Font.Color);

inifile.Free; // освободить память


- 12 -

Для того чтобы пользователь не забыл сохранить изменения, в OnClose формы, после inifile.free,  вставим код, который будет выводить окно с запросом о сохранение изменений:

{вывести сообщение о подтверждении сохранение изменений в файле: «Да» или «Нет»}

case messagedlg('Сохранить изменение ?',mtconfirmation,[mbyes,mbno],0)of

 mryes: memo1.Lines.SaveToFile(s); // если «Да» ,то сохранить с именем S

end;

Загрузка настроек программы


  Для того чтобы загрузить нам сохранения, нужно в процедуре формы OnCreate вставить следующий код:

var IniFile: TIniFile;

 begin

IniFile := TIniFile.Create('Notebook.ini');// читаем или создаём файл ini

s:=IniFile.ReadString('MainOptions', 'Base', '');//заносим в переменную S значение

{выставляем имя шрифта для Memo1}

memo1.Font.Name:=IniFile.ReadString('MainOptions', 'Name font','');

{выставляем размер шрифта для Memo1}

memo1.Font.Size:=IniFile.ReadInteger('MainOptions', 'Size',0);

{выставляем цвет шрифта для Memo1}

memo1.Font.Color:=IniFile.ReadInteger('MainOptions', 'Color', 0);

inifile.Free;

Для того чтобы открылся последний файл который был открыт перед закрытием, нужно OnCreate формы после оператора Inifile.free, вставить следующий код:

memo1.Lines.LoadFromFile(s);//загрузить файл с именем S

Так как, если нужно будет изменить шрифт текста то при запуске окна настройки шрифта там будет все настройки по умолчанию и пройдется менять все параметры, а чтоб этого не делать нужно присвоить значения от Memo1 к FontDialog. Вставим следующий код, после Memo1.Lines.LoadFromFile(s):

FontDialog1.Font:=Memo1.Font;{присвоить все параметры которые находятся в свойстве Font}


На этом создание  главной формы закончено. Можно скомпилировать и запустить проект, и если всё сделано правильно, то ошибок не каких быть не должно.











- 13 -

Описание вспомогательных программ, использованных в программе «Записная книжка»


«Справочник друзей»


Постановка задачи

  Так  как в программе «Справочник друзей» нужно будет записывать телефон, адрес, фамилию и имя человека то нужен компонент который мог бы это разрешить. Можно использовать базу данных для этих целей, но Delphi имеет компонент StringGrid. Для StringGrid’а ненужно дополнительных компонентов, а для работы с базами данных нужно несколько компонентов, которые лишь увеличивают размер программы. На форме будет 3 кнопки: «Добавить» (добавить строку), «Удалить » (удалить выделиную строку), «Выйти» (сохранить и закрыть программу).


Создание интерфейса

В свойстве Caption формы введём текст: ‘Справочник друзей’, а в свойстве формы Name введём имя формы: ‘Dryzi’. В свойстве формы AutoSize нужно выставить True, для то чтобы форма изменяла размер вместе с компонентами.

Перенесём с закладки Additional компонент StringGrid на форму. Выставляем следующие свойства этого компонента:

1.ColCount = 6 (количество столбцов)

2.FixedCols = 0 (зафиксировать(нельзя изменять) первый столбец)

3.FixedRows = 1 (зафиксировать(нельзя изменять) первую строку)

4.RowCount = 2 (количество строк)

5.SrollBars = ssVertical (ползунок вертикального типа)

  Перенесём на форму 3 кнопки BitBtn. Эти кнопки даёт возможно прикепить к ним пиктограмму. Назовем кнопки: 1. «Добавить»

                                                 2. «Удалить»

                                                 3. «Выйти»

  Поместим эти 3 кнопки сверху StringGrid1.


Описание процедур и функций

  Начнём с кнопок. В кнопку «Добавить» вставляем следующий код:

StringGrid1.RowCount:= StringGrid1.RowCount+1;(добавить строку)

  В кнопку «Удалить» вставляем код:

var

  i,j: Integer;

begin

  j:=StringGrid1.Row; // строка с выделением

  StringGrid1.Rows[j].Clear; //очистить выдилиную строку

  for i:=j to StringGrid1.RowCount-2 do //цикл нахождения выделиной строки


- 14 -

    StringGrid1.Rows[i].Assign(StringGrid1.Rows[i+1]); //


  StringGrid1.RowCount:=StringGrid1.RowCount-1; // удалить строку

  В кнопку «Выйти» просто вставим один оператор: ‘Close’.

  Для каждой кнопки нужно подобрать пиктограму, для этого нужно использовать свойство Glyph.

 Так как это справочник, то нужно чтобы все записи сохранялись, при выходе, и загружались, при запуске программы. Для этого в Окне Редактора Кода между словами Type и где объявляются другие процедуры нужно написать: ‘Procedure SaveGrid;’, а после слова implementation нужно вставить следующий код:

Страницы: 1, 2, 3, 4



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.