Смекни!
smekni.com

Записная книжка на Delphi 7 (стр. 2 из 4)

“Открыть” – открытие нужного файла с записями, ранее сохраненного на винчестере (жесткий диск).

“Сохранить” – сохранение изменений открытого в данный момент файла с записями.

“Экспорт данных” – сохранение открытого файла в текстовый документ.

“Выход” – сохранение изменений (при желании) и закрытие программы.

«Правка»

“Найти” – найти нужный текст в данном файле.

“Отменить” – отменить последние действие пользователя.

“Копировать” – копирование выделенного текста в буфер обмена.

“Вырезать” – вырезание выделенного текста в буфер обмена.

“Вставить” – вставка текста лежащего в буфере обмена.

“Очистить” – удалить весь текст в данном файле.

“Шрифт” – изменить шрифт написания слов.

“Дата и время” – вставить сегодняшнюю дату и время в окно редактирования.

«Экстра»

“Справочник друзей” – программа в которой можно записывать информацию (адрес, телефон и т.д.) о своих друзьях, знакомых и т.д.

“Media Player” – программа говорит сама за себя, в ней можно прослушать музыкальные композиции и просмотреть видео-файлы.

“CD-Rom” – программа для открытия и закрытия лотка CD-Rom’а.

“Напомнить о…” – программа для напоминания через заданное время.

Для более красочного интерфейса для каждой кнопки я поставил индивидуальную картинку, которая говорит о функции кнопки и её названии. Для этого сначала возьмем компонент ImageList с закладки Win32 и в него загрузим нужные нам картинки. Для того чтобы добавить нужную картину кликнем два раза по ImageList1 и нажмём кнопку Add, выбираем картинку и нажимаем Ok. Под каждой картинкой написан её номер, он нужен для «прикрепления» её к кнопке. Когда все картинки загрузили, нажимаем один раз на MainMenu1 и в Инспекторе Объектов выбираем свойство Images и из списка выбираем ImageList1. Теперь кликнем два раза на MainMenu1, выбираем кнопку и в её свойстве ImageIndex пишем номер нужной нам картинки.

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

- 7 -

Для этого берём с закладки Win32 компонент ToolBar, его имя будет ToolBar1. Добавляем кнопки на «Панель инструментов» нажатием правой кнопки на неё и нажатием команды New Button. Нам нужно 13 кнопок: «Новый», «Открыть», «Сохранить», «Копировать», «Вставить», «Вырезать», «Поиск», «Шрифт», «Дата и время», «Media Player»,«CD-Rom»,«Знакомые», «Напомнить о…». Что бы отделить группы кнопок таким знаком «|», нужно выбрать New Separator, в контекстном меню ToolBar’а. Будет 5 групп, то создаём 5 Separator’ов. Теперь для каждой новой кнопки выставим ссылку на нужную кнопку. Это делается при помощи свойства кнопки ToolBar’а – MenuItem. Кликнем на нужную кнопку и выбираем MenuItem, и из выпадающего списка выбираем нужный номер кнопки, а что б проверить под каким номером кнопка, например, кнопка «Новый» нужно в MainMenu1 (рис.1.1) кликнуть на кнопку с надписью «Новый » и в Инспекторе Объектов посмотреть номер кнопки (рис.1.4).

Рис.1.4

Номер кнопки в MainMenu

Когда все ссылки поставили можно выставить картинки на каждую кнопку, просто выбираем свойство TollBar’a – Image и выбираем ImageList1. Все картинки выставятся сами. Теперь можно разделить кнопки на группы, например:

1. «Новый», «Открыть», «Сохранить»

2. «Копировать», «Вставить», «Вырезать»

3. «Поиск»

4. «Шрифт»

5. «Дата и время»

6. «Media Player», «CD-Rom», «Знакомые», «Напомнить о…»

Так как кнопки расположены по порядку, то просто «перетащим» Separator на конец каждой группы кроме последней.

Перейдём к созданию часов.

Берём с закладки Win32, палитры компонентов, компонент CoolBar и перетащим его на форму. CoolBar автоматически поднимется к ToolBar’ у. Перенесём с закладки Standard компонент Label на CoolBar и разместим её ближе к концу CoolBar’a.

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

Рис. 1.5

Скомпилированный и запущенный

проект «Записная книжка»

- 8 -

Описание процедур и функций компонентов главной формы
Заполнения компонента MainMenu1.

Меню «Файл»

1. “Новый”
Так как при создании нового файла будет открываться окно для сохранения нового файла на жесткий диск, то нам нужен компонент SaveDialog с закладки Dialogs. Заходим с главной формы Файл|Новый откроется Окно Редактора Кода и в него вставляем следующий код с комментариями, после слова Begin:
if savedialog1.Execute then begin // Запустить окно сохранения файла
memo1.Lines.SaveToFile(savedialog1.FileName+'.not'); // Сохранить предыдущий текст с
//именем которое ввели в окне сохранения файла
memo1.Clear(); //Очистить компонент Memo от предыдущего текста

end;

s:=savedialog1.FileName+'.not'; // занести в переменную S имя файла (для открытия файла, когда программу вновь запустят и для сохранения в когда программа работает).

Настроим фильтр файлов (типы файлов в которые можно сохранять файлы), для это в SaveDialog1 настроим свойство Filter: Filter Name: ‘Файлы программы’; Filter: ‘*.not’.

2. “Открыть”

Для открытия файлов в Delphi есть компонент OpenDialog. Перетащим этот компонент с закладки Dialogs на форму и сразу пропишем его свойство Filter так как и в SaveDialog. Заходим Файл|Открыть и вставляем этот код, после слова Begin:

if opendialog1.Execute then // Открыть окно открытия файла

memo1.Lines.LoadFromFile(Opendialog1.FileName); // Загрузить в Memo1 файл

S:=OpenDialog1.FileName; // занести в переменную S - имя файла, для открытия когда

//программу вновь запустят и для сохранения изменений в процессе выполнения

//программы

3. “Сохранить”

Вставить этот код в свойство OnClick кнопки:

memo1.Lines.SaveToFile(s); // сохранить содержания компонента Memo1 в файл с

//именем которого хранится в переменной S

4. “Экспорт данных…”

Для этого нужен ещё один компонент SaveDialog и так как файл будет сохраняться в «Текстовый документ», то в свойстве Filter, компонента SaveDialog2, нужно ввести: Filter Name: ‘Текстовый документ’, а Filter: ‘*.txt’. Теперь вставить следующий код в кнопку:

if SaveDialog2.Execute then // запустить окно сохранения файла

- 9 -

memo1.Lines.SaveToFile(Savedialog2.FileName+'.txt');//сохранить файл с расширением

// txt

5. “Выход”

Для закрытия программы в Delphi есть один оператор CLOSE. Вставим этот оператор в кнопку.

Настройка меню «Файл» - закончена.

Меню «Правка»

1. “Найти”

Для поиска нужного текста в Delphi есть компонент FindDialog. Перенесём этот компонент с закладки Dialogs.

Вставляем следующий код в OnClick кнопки:

Spos:=memo1.SelStart; //Запоминание позиции курсора

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 кнопки пишем следующий код: