logo search
Методичка лаб по ООП с ИИТ

Лабораторная работа 5. Рисование мышью в форме

Исполнение рисунка в технике «мышь» поможет закрепить отдельные навыки программирования и познакомиться с новыми конструкциями языка.

Задание 1.

Откройте новый проект и разместите на форме компонент Image1 (вкладка Additional). Размеры можно увеличить, это будет импровизированная чертежная доска. Добавьте на форму кнопку Очистить для удаления неудачных рисунков. Два раза щелкнете по кнопке и в заготовке добавьте операторы.

procedure TForm1.Button1Click(Sender: TObject);

begin

Image1.Canvas.FillRect(ClientRect); //заполняет прямоугольную область белым цветом

end;

Здесь Canvas – набор средств рисования, связанных с компонентом Image1.

Задание 2.

Технология рисования напоминает технологию перетаскивания, процедуры реакции относятся к компоненту Image1. Из большого набора чертежных средств, имеющихся в Canvas используем следующие:

MoveTo(x,y) –переместить перо в точку с координатами(х,у), при этом перо не оставляет следа.

LineTo(x,y) – передвинуть перо в точку с координатами (х,у), рисуя при этом прямую линию.

Текст процедур вместе с объявлением глобальной переменной drag приведен ниже.

Var drag: boolean=false;

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

Shift: TShiftState; X, Y: Integer);

begin

drag:=true;

Image1.Canvas.MoveTo(x,y);

end;

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

begin

if drag then Image1.Canvas.LineTo(x,y);

end;

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

Shift: TShiftState; X, Y: Integer);

begin

drag:=false;

end;

Задание 3.

Добавим кнопку Сохранить и со вкладки Dialogs компонент SaveDialog1 и установим для его свойств такие значения:

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

Default Ext BMP

Options.ofHideReadOnly True

Options.ofOverwritePrompt True

Options.ofNoReadOnlyReturn True

Title Save File

Для того чтобы открыть окно Filter Editor (Редактор фильтра), дважды щелкните на свойстве Filter.

Заполните две первые строки в колонке Filter Name (Имя фильтра) на­званиями фильтров: растровое изображение и All files, а в колонке Filter (Фильтр) вве­дите соответствующие фильтры: *.bmp и *.*.

Двойным щелчком откроем процедуру Button2Click и добавим следующий код.

procedure TForm1.Button2Click(Sender: TObject);

begin

if SaveDialog1.Execute then

Image1.Picture.SaveToFile(SaveDialog1.FileName);

end;

Задание 4.

Самостоятельно организуйте возможность открытия рисунков формата jpg. После заполнения свойства фильтр, необходимо подключить модуль Jpeg.

Задание 5.

Для изменения цвета формы используем стандартную функцию RGB. Расположим вдоль одной линии в форме компоненты Label1, Edit1, ScroolBar1 (вкладка Standard). Выберем для надписи Label1 красный цвет и в ее заголовок большими буквами напишем КРАСНЫЙ. Полосу прокрутки ScroolBar1растянем по горизонтали. Каждому положению бегунка соответствует определенная позиция (Position). Установим диапазон этих значений Min=0, Max=255. Выделяем все три компонента и создаем еще две такие группы, используя буфер обмена. Изменяем надписи Label2 на ЗЕЛЕНЫЙ, Label3- СИНИЙ. Двойным щелчком по ScroolBar1 открываем заготовку процедуры задаем локальные переменные и вносим код процедуры.

var

red,green,blue:byte; //для определения значение от 0 до 255

c:TColor; //для задания цвета формы

procedure TForm1.ScrollBar1Change(Sender: TObject);

begin

red:=ScrollBar1.Position; //фиксируем значения позиций ползунков

green:=ScrollBar2.Position;

blue:=ScrollBar3.Position;

Edit1.Text:=IntToStr(red); //показываем их в текстовом поле

Edit2.Text:=IntToStr(green);

Edit3.Text:=IntToStr(blue);

c:=RGB(red,green,blue); //синтезируем цвет

Form1.Color:=c; //устанавливаем новый цвет формы

Form1.Caption:='Код цвета'+IntToStr(c);

end;

Создайте обработчики событий для ScrollBar2, ScrollBar3. запустите программу и попробуйте управлять цветом формы. В дальнейшем можно создавать цвет, используя функцию RGB, например

Label.Color:=RGB(48,123,211);

Задание 6.

Самостоятельно создайте форму, установите несколько компонентов, определите их цвет, используя функцию RGB.