§ 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. Дадатак у час работы: