“Открыть” – открытие нужного файла с записями, ранее сохраненного на винчестере (жесткий диск).
“Сохранить” – сохранение изменений открытого в данный момент файла с записями.
“Экспорт данных” – сохранение открытого файла в текстовый документ.
“Выход” – сохранение изменений (при желании) и закрытие программы.
«Правка»
“Найти” – найти нужный текст в данном файле.
“Отменить” – отменить последние действие пользователя.
“Копировать” – копирование выделенного текста в буфер обмена.
“Вырезать” – вырезание выделенного текста в буфер обмена.
“Вставить” – вставка текста лежащего в буфере обмена.
“Очистить” – удалить весь текст в данном файле.
“Шрифт” – изменить шрифт написания слов.
“Дата и время” – вставить сегодняшнюю дату и время в окно редактирования.
«Экстра»
“Справочник друзей” – программа в которой можно записывать информацию (адрес, телефон и т.д.) о своих друзьях, знакомых и т.д.
“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 -
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 кнопки пишем следующий код: