Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОА Delphi формата А4.doc
Скачиваний:
7
Добавлен:
29.08.2019
Размер:
1.58 Mб
Скачать
  1. Создание приложения графический редактор.

Цель занятия: Научиться работать с графикой в среде программирования Delphi.

ЗАДАНИЕ1: Спроектируйте интерфейс приложения. Для выполнения задания необходимо: поместить на форму следующие компоненты: GroupBox1, GroupBox2, PaintBox1.

Для компонента GroupBox1 изменить следующие свойства:

  • Свойство Align поменять на alLeft для того, чтобы компонент был расположен по левому краю формы.

  • В свойстве Caption нажмите на Выбор фигуры.

  • Аналогично поменяйте свойства компонента GroupBox2 (расположение по правому краю, заголовок – Опции). Компонент PaintBox1 разместите по клиентской области.

В область компонента GroupBox1 добавьте три кнопки для выбора фигур, измените свойство Caption добавленных кнопок на Прямоугольник, Эллипс, Линия.

Для выбора размера пера добавьте на форму компоненты Label1, Edit1, TUpDown. Измените свойства добавленных компонентов:

  • свойство Caption компонента Label1 на Размер пера;

  • свойство Text компонента Edit1 на 1;

  • свойство Associate компонента UpDown1 измените на Edit1 для отображения чисел в поле Edit1.

Для указания координат фигур добавьте в эту же область 4 компонента классов TEdit, TLabel и TUpDown.

  • Измените свойство Name компонента Edit1 и свойство Caption компонента Label1 на X1. Аналогично измените свойства других добавленных объектов классов TEdit и TLabel.

  • Измените свойство Text компонентов класса TEdit на исходные координаты для рисования геометрических фигур (прямоугольника, эллипса, линии).

  • Для компонентов класса TUpDown измените свойства: Associate для привязки компонентов класса TUpDown к компонентам класса TEdit. Min, Max для установки минимального и максимального значения.

Для рисования фигуры Прямоугольник написать программу:

procedure TForm1.Button1Click (Sender: TObject);

begin

with PaintBox1.Canvas do

begin

pen.Width := StrToInt (edit1.Text); // установка толщины пера

Rectangle (StrToInt (X1.text), StrToInt (Y1.text), StrToInt(X2.text), StrToInt (Y2.text));

end; end;

Примечание: Для кнопок Эллипс, Линия программы рисования фигур написать самостоятельно.

С помощью компонента MainMenu1 добавить следующие пункты меню: Файл, Фигура, Параметры, Справка. Пункт Файл содержит команды: Очистить и Выход. Пункт Фигура содержит команды: Прямоугольник, Эллипс, Линия. Пункт Параметры содержит команды: Цвет границы, Цвет заливки. Пункт Справка содержит справку о программе. Для выбора меню Правка - Очистить написать программу:

procedure TForm1.ClearClick(Sender: TObject);

begin with PaintBox1.Canvas do begin

Brush.Style := bsSolid;

Brush.Color := clBtnFace;

FillRect (Rect (0,0,320,345));

end;

Событиям OnClick выбора в меню соответствующих команд «связать» события нажатия кнопок Прямоугольник, Эллипс, Линия.

ЗАДАНИЕ2: Изменение цвета линий и заливка замкнутой области.

В область компонента GroupBox1 добавьте две кнопки для выбора фигур, измените свойство Caption добавленных кнопок на Цвет границы, Цвет заливки.

Для установки цвета границы написать программу:

procedure TForm1.Button4Click(Sender: TObject);

begin

if ColorDialog1.Execute=true then //если выбран цвет в диалоговом окне Цвет

begin

PaintBox1.Canvas.pen.Color := ColorDialog1.Color; //для установки цвета границы

end; end;

Для выбора стиля границы в область компонента GroupBox2 добавьте по 2 компонента классов TComboBox и TLabel.

Измените свойства добавленных компонентов:

  • свойство Caption компонента Label1 на Стиль границы; свойство Items компонента TComboBox изменить на:

    psSolid

    psDash

    psDot

    psDashDot

    psDashDotDot

    psClear

    Сплошной

    Линия

    Точка

    Точка – линия

    Тире – две точки

    Прозрачный

  • написать программу для выбора стиля границы для рисования фигур:

procedure TForm1.ComboBox1Change(Sender: TObject);

begin

with PaintBox1.Canvas do

case ComboBox1.ItemIndex of

0 : Pen.Style := psSolid;

1 : Pen.Style := psDash;

2 : Pen.Style := psDot;

3 : Pen.Style := psDashDot;

4 : Pen.Style := psDashDotDot;

5 : Pen.Style := psClear;

end; end;

  • Свойству Style присвоить значение csOwnerDrawVariable для того, чтобы исключить возможность ввода произвольного значения в поле.

Примечание: самостоятельно напишите программу для установки цвета заливки. Стили заливки следующие:

Для установки заливки напишите программу на событие нажатия левой кнопки мыши на объекте PaintBox1 при выбранном цвете заливки:

bsSolid

bsClear

bsBDiagonal

bsFDiagonal

bsCross

bsDiagCross

bsHorizontal

bsVertical

Сплошной

Прозрачный

Диагональ горизонтальная

Диагональ вертикальная

Пересечение

Диагональное пересечение

Горизонтальная

Вертикальная

procedure TForm1.PaintBox1MouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

begin