Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LR_Delphi_2.doc
Скачиваний:
9
Добавлен:
18.09.2019
Размер:
1.91 Mб
Скачать

Interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;

type

TForm1 = class(TForm)

procedure FormMouseDown(Sender: TObject; Button:TMouseButton;

Shift: TShiftState; x,y:integer);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

Implementation

{$R *.dfm}

procedure StarLine(x0,y0,r: integer; Canvas: TCanvas);

// x0,y0 - координаты центра звезды

// r - радиус звезды

var

p: array[1..11] of TPoint; // координаты лучей и впадин

a: integer; // угол между ОХ и радиусом

i: integer;

begin

a := 18; // строим от правого горизонтального луча

for i:=1 to 10 do

begin

if (i mod 2 = 0)

then

begin // впадина звезды

p[i].x := x0+Round(r/2*cos(a*2*pi/360));

p[i].y:=y0-Round(r/2*sin(a*2*pi/360));

end

else

begin // луч звезды

p[i].x:=x0+Round(r*cos(a*2*pi/360));

p[i].y:=y0-Round(r*sin(a*2*pi/360));

end;

a := a+36;

end;

p[11].X := p[1].X; // чтобы замкнуть контур звезды

p[11].Y := p[1].Y;

Canvas.Polyline(p); // начертить звезду

end;

// нажатие кнопки мыши

procedure TForm1.FormMouseDown(Sender: TObject;

Button:TMouseButton; Shift: TShiftState; x,y:integer);

begin

with Form1 do

begin

if Button = mbLeft // нажата левая кнопка?

then

begin

Canvas.Pen.Color := clBlack;

StarLine(x, y, 30,Canvas);

Canvas.Brush.Style:=bsDiagCross;

Canvas.Brush.Color:=clRed;

Canvas.FloodFill(x,y,Canvas.Pen.Color, fsBorder);

end

else

begin

Canvas.Pen.Color := clRed;

StarLine(x, y, 30,Canvas);

Canvas.Brush.Style:=bsCross;

Canvas.Brush.Color:=clBlue;

Canvas.FloodFill(x,y,Canvas.Pen.Color, fsBorder);

end;

end;

end;

end.

На рис. 16 .13представлен вид окна приложения задачи 1 при исполнении.

рис. 16.13. Окно работающего приложения задачи 1

Задание 2

Создать проект в котором в форме, цвет которой может изменяться, отображается компонент Shape1 (фигура), для которого можно менять тип, цвет и размеры. Формы фигур: stCircle, stEllipse, stsquare.

Выполнение

  1. Запустить Delphi.

  2. Создать в ней новое приложение.

  3. Присвоить свойству Caption компонента Form1 значение Prg_16_2.

  4. Сохранить модуль под именем Prg_16_2_, а проект под именем Prg_16_2.

  5. Установить на форме компоненты:

  • кнопки Button1 и Button2, комбинированный список ComboBox1, линейки прокрутки ScrollBar1 и ScrollBar2, панель Panel1 (со страницы Standard).

  • фигура Shape1 (со страницы Additional).

  • диалог цвета ColorDialog1 (со страницы Dialogs).

  1. Задать свойству Shape компонента Shape1 значение stEllipse (Эллипс). Используя свойство Brush, установить произвольный цвет объекта Shape1.

  2. Установить значения свойств компонентов линеек прокрутки ScrollBar1 и ScrollBar2:

    Name

    ScrollBar1

    ScrollBar2

    Kind ( Тип)

    sbHorizobntal (Горизонтальная)

    sbVertical (Вертикальная)

    Align (Размещение)

    alBottom (Снизу)

    alRight (Справа)

  3. Компоненты Button1, Button2, ComboBox1 установить на передний план объекта Panel1 и выровнять их по вертикали.

  4. Установить значения свойств компонентов Button1, Button2:

    Компонент

    Button1

    Button2

    Name (Имя)

    FormColor

    ShapeColor

    Caption (Надпись)

    Цвет формы

    Цвет фигуры

  5. Установить следующие значения строк списка ComboBox1:

Имя фигуры

Тип фигуры

stRectangle

Прямоугольник

stSguare

Квадрат

stRoundRect

Прямоугольник со скругленными углами

stRoundSguare

Квадрат со скругленными углами

stEllipse

Эллипс

stCircle

Круг

Внимание: имена фигур надо заносить в указанном порядке, так как они далее анализируются по номеру в списке.

  1. Задать свойству BorderWidth компонента Panel1 значение 5. После вышеперечисленных установок интерфейс проекта примет вид, показанный на рис. 16 .14.

рис. 16.14. Форма проекта задачи 2

  1. Для изменения цвета фигуры или формы во время выполнения приложения использовать стандартное диалоговое окно выбора цвета ColorDialog1. Этот компонент при исполнении программы невидим.

  2. Двойным щелчком по кнопке Цвет формы создать заготовку обработчика отклика на событие OnClick (на щелчок) для кнопки Цвет формы. Написать код обработчика, который при нажатии кнопки Цвет формы вызывает стандартное диалоговое окно выбора цвета с помощью диалогового окна ColorDialog1.

  3. Двойным щелчком по кнопке Цвет фигуры создать заготовку обработчика события OnClick (на щелчок) для кнопки Цвет фигуры. Написать код обработчика, который при нажатии кнопки установит значение свойства Brush.Color (цвет закраски) фигуры Shape1, выбираемое с помощью диалогового окна ColorDialog1.

  4. Запустить проект командой Выполнить и проверить действие кнопок Цвет формы и Цвет фигуры. При нажатии кнопок выбора цвета в отдельном окне (см. рис. 16 .15) отображается окно диалога выбора цвета, в котором следует выбирать желаемый цвет.

рис. 16.15. Окно диалога выбора цвета

Вернуться в режим конструирования.

  1. Запрограммировать изменение размера фигуры с помощью полос прокрутки. Для этого:

  • Двойным щелчком по компонентам создать заготовки методов для отклика на событие OnChange (на изменение) для каждой из полос прокрутки ScrollBar1 и ScrollBar2.

  • Написать для этих методов коды, которые установят свойство Width (ширина) или Height (высота) фигуры Shape1 в соответствии с положением "бегунка" на горизонтальной (ScrollBar1) или вертикальной (ScrollBar2) полосах прокрутки.

  • Подобрать соотношение между положением бегунков полосы прокрутки ScrollBar1.Position и ScrollBar2.Position (лежат в пределах 1...100) и размерами фигуры, при котором достигается лучшее представление изменения размеров фигуры.

  1. Запустить проект и проверить действие каждой из полос прокрутки. Вернуться в режим конструирования.

  2. Для выбора нового вида фигуры использовать выпадающий список (ComboBox). Чтобы создать список в режиме проектирования, необходимо ввести нужные элементы в список Items, щелкнув маленькую кнопку с тремя точками в правой части строки Инспектора объектов, отображающую данное свойство. Список показан на рис. 16 .16.

рис. 16.16. Список опций свойства Shape

  1. В диалоговое окно текстового редактора (см. рис. 16 .16) ввести фигуры по заданию.

  2. Двойным щелчком по компоненту ComboBox1 создать заготовку обработчика события OnClick (на щелчок) для списка ComboBox1. В нее вставить код, позволяющий выбрать из списка нужный элемент.

  3. Для проверки кода запустить проект, а затем поочередно выбрать из списка разные виды фигур.

  4. Сохранить и закрыть проект. Запустить исполняемый файл проекта Prg_16_2 из среды Windows и проверить его работоспособность.

Листинг модуля формы

unit Prg_16_2_;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]