Печатать эту главуПечатать эту главу

§ 5. Создание приложений

5.4. Создание приложения «Блокнот»

Разместить на форме (пример 5.14) следующие компоненты:

  • рабочая область для текста — Memo1;
  • диалоги работы с файлами — OpenDialog1, SaveDialog1;
  • диалоги для настройки внешнего вида приложения — FontDialog1, ColorDialog1;
  • главное меню — MainMenu.

Компонент Мемо предназначен для набора и редактирования текста. Для того, чтобы компонент занимал все клиентскую часть формы, необходимо установить у свойства Align значение asClient (пример 5.15). Добавить вертикальную полосу прокрутки, выбрав значение ssVertical для свойства ScrollBars.

Для того, чтобы очистить рабочую область компонента, необходимо вызвать редактор строк (String List Editor) и удалить текст Memo1. Редактор строк вызывается нажатием кнопки у свойства компонента Lines (пример 5.16).

Структура меню представлена в примере 5.17. Для написания обработчиков пунктов меню нужно в инспекторе объектов выбрать соответствующий пункт меню, перейти на вкладку Events и выбрать событие OnClick. Поскольку событие OnClick является событием по умолчанию, то двойной клик по пункту в редакторе меню или по соответствующей строке в разделе Structure создаст процедуру обработчик.

Обработчики событий для каждого из пунктов меню представлены в примере 5.18.

Для сохранения и загрузки файлов опишем глобальную переменную FileName:

var FileName: String;

Обработчик пункта меню Создать (N2) очищает строки компонента Memo от введенного ранее текста.

Обработчики пунктов меню Открыть (N3) и Сохранить (N4) работают с файлом. Имя файла добавляется к заголовку окна.

Обработчик пункта меню Выход (N6) закрывает главную форму проекта.

Обработчик пункта меню Шрифт (N8) приписывает шрифту, связанному с компонентом Memo, свойства, выбранные пользователем.

Обработчик пункта меню Цвет фона (N9) устанавливает для Memo цвет фона, выбранный пользователем.

Окно работающего приложения показано в примере 5.19.

Для компонента Memo определены следующие действия: Копировать (Ctrl + C), Вырезать (Ctrl + X), Вставить (Ctrl + V), Отменить (Ctrl + Z).

Пример 5.14. Форма на этапе конструирования:

Пример 5.15. Настройка клиентской области:

Пример 5.16. Редактор строк:

Пример 5.17. Структура меню:

Пример 5.18. Обработчики событий для пунктов меню:

procedure TForm1.N2Click(Sender: TObject);
begin
  Memo1.Lines.Clear;
end;

procedure TForm1.N3Click(Sender: TObject);
begin
  if OpenDialog1.Execute then
  begin
    FileName := OpenDialog1.FileName;
    Memo1.Lines.LoadFromFile(FileName);
    Form1.Caption:='Блокнот '+FileName;
  end;

end;

procedure TForm1.N4Click(Sender: TObject);

begin
  if SaveDialog1.Execute then
  begin
    FileName := SaveDialog1.FileName;
    Memo1.Lines.SaveToFile(FileName);
    Form1.Caption:='Блокнот '+FileName;
  end;
end;

procedure TForm1.N6Click(Sender: TObject);

begin
  Form1.Close;
end;

procedure TForm1.N8Click(Sender: TObject);

begin
  if FontDialog1.Execute then
    Memo1.Font.Assign(FontDialog1.Font);
end;

procedure TForm1.N9Click(Sender: TObject);

begin
  if ColorDialog1.Execute then
    Memo1.Color:=ColorDialog1.Color;
end;

Пример 5.19. Работающее приложение: