Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Визуальное программирование для бизнеса. Методические указания к ЛР.doc
Скачиваний:
4
Добавлен:
02.11.2018
Размер:
2.25 Mб
Скачать

12 Лабораторная работа №2 (Текстовый редактор)

Цель работы: изучение основных приемов, инструментов и компонентов для создания современных Windows-приложений в среде Delphi.

Последовательность действий при выполнении лабораторной работы:

13 Создать новый проект (команда File|New|Application) и сохранить его файлы в папке <Папка группы>\<Фамилия студента>\ЛР2\ (команда File|Save Project As).

14 Задать название проекта: 'Текстовый редактор' (команда Project|Options, закладка Application, параметр Title).

15 Установить свойства главной формы проекта Form1 в Инспекторе Объектов:

Свойство

Обозначение

Значение

Заголовок окна

Caption

Текстовый редактор,

<Фамилия студента>

Положение на экране (при первом показе)

Position

poDesktopCenter

или poScreenCenter

Состояние окна

(при первом показе)

WindowState

wsMaximized

16 Разместить на форме компонент класса TMemo (закладка Standard Палитры Компонентов) и установить его свойства:

Свойство

Обозначение

Значение

Выравнивание

Align

alClient

Цвет фона

Color

<по усмотрению студента>

Содержимое редактора (набор строк)

Lines

<удалить все содержимое

в String List Editor>

Полосы прокрутки

ScrollBars

ssBoth

17 Разместить на форме компонент TMainMenu (закладка Standard) и открыть Редактор Меню (двойной щелчок на компоненте MainMenu1).

18 Создать первый пункт горизонтального меню File: щелкнуть правой кнопкой мыши на клиентской области Редактора Меню, выполнить команду Insert From Template и выбрать из списка пункт File Menu.

19 Создать второй пункт горизонтального меню Edit: щелкнуть левой кнопкой мыши на пустом прямоугольнике справа от пункта File и установить в Инспекторе Объектов в свойстве Caption выделенного пункта меню значение '&Edit'.

Создать вертикальное меню для пункта Edit:

а) последовательно щелкнуть на пункте Edit и на пустом прямоугольнике снизу от пункта Edit, установить в свойстве Caption значение '&Undo', а в свойстве ShortCutCtrl+Z;

б) щелкнуть на пустом прямоугольнике снизу от пункта Undo и установить в свойстве Caption значение '-' (тире);

в) щелкнуть на пустом прямоугольнике снизу от разделителя меню (горизонтальной черты), установить в свойстве Caption значение 'Cu&t', а в свойстве ShortCutCtrl+X;

г) создать остальные пункты вертикального меню Edit: свойства Caption: '&Сopy', '&Paste' и 'Select &All', свойства ShortCut: Ctrl+C, Ctrl+V и Ctrl+A соответственно.

20 Создать третий пункт горизонтального меню Options: щелкнуть левой кнопкой мыши на пустом прямоугольнике справа от пункта Edit и установить в свойстве Caption выделенного пункта меню значение '&Options'.

21 Создать четвертый пункт горизонтального меню About: щелкнуть левой кнопкой мыши на пустом прямоугольнике справа от пункта Options и установить в свойстве Caption выделенного пункта меню значение '&About'.

22 В секции var раздела interface модуля Unit1.pas ввести код:

var

Form1: TForm1;

FileName: string;

23 Создать обработчик события OnCreate компонента Form1. В обработчике события TForm1.FormCreate ввести код:

procedure TForm1.FormCreate(Sender: TObject);

begin

FileName := '';

end;

24 Создать обработчик события OnClick компонента New1 (пункта меню New). В обработчике события TForm1.New1Click ввести код:

procedure TForm1.New1Click(Sender: TObject);

begin

Memo1.Clear;

FileName := '';

end;

25 Разместить на форме Form1 компоненты класса TOpenDialog и TSaveDialog (закладка Dialogs).

Установить в свойстве DefaultExt компонентов OpenDialog1 и SaveDialog1 значение '.txt', изменить значение свойства Filter этих компонентов в Filter Editor:

Filter Name

Filter

Текстовые файлы

*.txt

Все файлы

*.*

Установить в свойстве Options – ofOverwritePrompt компонента SaveDialog1 значение 'True'.

26 Создать обработчик события OnClick компонента Open1. В обработчике события TForm1.Open1Click ввести код:

procedure TForm1.Open1Click(Sender: TObject);

begin

if OpenDialog1.Execute then

begin

FileName := OpenDialog1.FileName;

Memo1.Lines.LoadFromFile(FileName);

end;

end;

27 Создать обработчик события OnClick компонента SaveAs1. В обработчике события TForm1.SaveAs1Click ввести код:

procedure TForm1.SaveAs1Click(Sender: TObject);

begin

if SaveDialog1.Execute then

begin

FileName := SaveDialog1.FileName;

Memo1.Lines.SaveToFile(FileName);

end;

end;

28 Создать обработчик события OnClick компонента Save1. В обработчике события TForm1.Save1Click ввести код:

procedure TForm1.Save1Click(Sender: TObject);

begin

if (FileName = '')

then SaveAs1Click(Sender)

else Memo1.Lines.SaveToFile(FileName);

end;

29 Установить в свойстве Enabled элементов меню Print и Print Setup значение 'False'.

30 Создать обработчик события OnClick компонента Exit1. В обработчике события TForm1.Exit1Click ввести код:

procedure TForm1.Exit1Click(Sender: TObject);

begin

Close;

end;

31 Создать обработчик события OnClick компонента Undo1. В обработчике события TForm1.Undo1Click ввести код:

procedure TForm1.Undo1Click(Sender: TObject);

begin

Memo1.Undo;

end;

32 Создать обработчик события OnClick пункта меню Cut. В обработчике события TForm1.Cut1Click ввести код:

procedure TForm1.Cut1Click(Sender: TObject);

begin

Memo1.CutToClipboard;

end;

33 Создать обработчик события OnClick пункта меню Copy. В обработчике события TForm1.Copy1Click ввести код:

procedure TForm1.Copy1Click(Sender: TObject);

begin

Memo1.CopyToClipboard;

end;

34 Создать обработчик события OnClick пункта меню Paste. В обработчике события TForm1.Paste1Click ввести код:

procedure TForm1.Paste1Click(Sender: TObject);

begin

Memo1.PasteFromClipboard;

end;

35 Создать обработчик события OnClick пункта меню Select All. В обработчике события TForm1.SelectAll1Click ввести код:

procedure TForm1.SelectAll1Click(Sender: TObject);

begin

Memo1.SelectAll;

end;

36 Создать обработчик события OnClick пункта меню About. В обработчике события TForm1.About1Click ввести код:

procedure TForm1.About1Click(Sender: TObject);

begin

ShowMessage('Автор программы: <Фамилия студента>');

end;

37 Создать форму для второго окна приложения – окна опций редактора (команда File|New|Form) и сохранить файл Unit2.pas в папке <Папка группы>\<Фамилия студента>\ЛР2\ (команда File|Save As).

Установить свойства компонента Form2 в Инспекторе Объектов:

Свойство

Обозначение

Значение

Стиль (обрамления) окна

BorderStyle

bsDialog

Заголовок окна

Caption

Editor Options

Цвет фона

Color

<по усмотрению студента>

Положение на экране (при первом показе)

Position

poMainFormCenter

38 Разместить на форме Form2 два компонента класса TLabel (закладка Standard), один компонент класса TShape (закладка Additional), один компонент класса TStaticText (закладка Additional), один компонент класса TBevel (закладка Additional) и два компонента класса TBitBtn (закладка Additional). Изменить размеры формы, разместить и выровнять компоненты, как показано на рис. 2:

Рис. 2

39 Переместить компонент TBevel на задний план (щелкнуть на компоненте правой кнопкой мыши и выполнить команду Control|Send to Back).

Установить в свойстве Caption компонента Label1 значение 'Цвет фона:', в свойстве Caption компонента Label2 значение 'Шрифт:'.

Установить свойства компонента StaticText1:

Свойство

Обозначение

Значение

Вид обрамления

BevelKind

bkTile

Текст

Caption

ABCabc

Установить в свойстве Kind компонента BitBtn1 значение bkOK, а в свойстве Kind компонента BitBtn2 значение bkCancel.

40 Разместить на форме Form2 компоненты класса TColorDialog и TFontDialog (закладка Dialogs).

41 Создать обработчик события OnMouseUp компонента Shape1. В обработчике события TForm2.Shape1MouseUp ввести код:

procedure TForm2.Shape1MouseUp(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

begin

ColorDialog1.Color := Shape1.Brush.Color;

if ColorDialog1.Execute

then Shape1.Brush.Color := ColorDialog1.Color;

end;

42 Создать обработчик события OnMouseUp компонента StaticText1. В обработчике события TForm2.StaticText1MouseUp ввести код:

procedure TForm2.StaticText1MouseUp(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

begin

FontDialog1.Font.Assign(StaticText1.Font);

if FontDialog1.Execute

then StaticText1.Font.Assign(FontDialog1.Font);

end;

43 Создать обработчик события OnClick пункта меню Options. В обработчике события TForm1.Options1Click ввести код:

procedure TForm1.Options1Click(Sender: TObject);

begin

Form2.Shape1.Brush.Color := Memo1.Color;

Form2.StaticText1.Font.Assign(Memo1.Font);

if (Form2.ShowModal = mrOK) then

begin

Memo1.Font.Assign(Form2.StaticText1.Font);

Memo1.Color := Form2.Shape1.Brush.Color;

end;

end;

44 Разместить на форме Form1 компонент класса TImageList (закладка Win32). Добавить в список рисунков компонента ImageList1 пиктограммы для основных элементов меню:

а) открыть Редактор Списка Рисунков (двойной щелчок на компоненте ImageList1);

б) нажать на кнопку Add, перейти в папку <Папка группы>\Buttons и выбрать файлы рисунков copy.bmp, cut.bmp, dooropen.bmp, filenew.bmp, fileopen.bmp, filesave.bmp и paste.bmp (щелкая на именах файлов левой кнопкой мыши при нажатой клавише Ctrl). (На запрос программы '… Separate into to separate bitmaps?' ответить нажатием кнопки Yes to All.)

в) закрыть Редактор Списка Рисунков нажатием на кнопку OK.

45 Установить в свойстве Images компонента MainMenu1 значение 'ImageList1'.

46 Для каждого из элементов меню New, Open, Save, Exit, Cut, Copy и Paste выбрать соответствующие пиктограммы из выпадающего списка свойства ImageIndex.

47 Разместить на форме Form1 компонент класса TToolBar (закладка Win32) и установить в свойстве Images компонента ToolBar1 значение 'ImageList1'.

48 Добавить кнопки на панель инструментов ToolBar1, выбирая из всплывающего меню этого компонента команды в следующей последовательности: а) New Button (три раза), б) New Separator (один раз) и в) New Button (три раза).

49 Для каждой из кнопок панели инструментов ToolBar1 выбрать из выпадающего списка свойства MenuItem следующие значения:

Кнопка

Значение свойства MenuItem

ToolButton1

New1

ToolButton2

Open1

ToolButton3

Save1

ToolButton5

Cut1

ToolButton6

Copy1

ToolButton7

Paste1

50 Разместить на форме Form1 компонент класса TStatusBar (закладка Win32), создать два компонента класса TStatusPanel в редакторе Панели Состояния (компоненты создаются нажатием клавиши Ins) и установить в свойстве Width первого компонента 0 - TStatusPanel значение '100'.

51 Разместить на форме Form1 компонент класса TTimer (закладка System) и установить в свойстве Interval компонента Timer1 значение '100'.

52 Создать обработчик события OnTimer компонента Timer1. В обработчике события TForm1.Timer1Timer ввести код:

procedure TForm1.Timer1Timer(Sender: TObject);

begin

StatusBar1.Panels[0].Text := IntToStr(Memo1.CaretPos.X+1)

+':'+IntToStr(Memo1.CaretPos.Y+1);

if Memo1.Modified

then StatusBar1.Panels[1].Text := 'Modified'

else StatusBar1.Panels[1].Text := '';

end;

53 Сохранить изменения проекта (команда File|Save All).

54 Запустить проект на выполнение (клавиша F9). На запрос программы 'Form ‘Form1’ references form ‘Form2’ … Do you wish to add it?' ответить нажатием кнопки Yes и снова запустить проект на выполнение (клавиша F9).