Порядок выполнения

Постановка задачи

Разработать приложение, реализующее основные функции графического редактора.

 

1. Создать новый проект.

2. Расположить на форме командную кнопку и для нее ввести программный код (событие OnClick):

form1.Canvas.Font.Size:=20;

form1.Canvas.Font.Style :=form1.Font.Style +[fsbold];

form1.Canvas.Font.Color :=clBlue;

//form1.Canvas.Font.Height :=100;

form1.Canvas.Font.Name :='Arial';

form1.Canvas.TextOut(10,20,’Мой графический редактор’);

3. Проверить работу программы. Изменить размер окна (развернуть, свернуть). Просмотреть результат.

4. Перемести введенный программный код в процедуру Form1Paint и еще раз проверить работу программы.

5. Добавить на форму компонент PaintBox (System), задать ему имя Pole.

6. Для объекта Pole выберите событие OnMouseDown и ввести код:

If Button = mbLeft Then // если нажата левая кнопка

maincolor:=clred //переменной присвоить красный цвет

Else //иначе зеленый

maincolor:=clGreen;

7. Для объекта Pole выберите событие OnMouseUp и ввести код;

maincolor:=form1.Color ;

8. Для объекта Pole выберите событие OnMouseMove и ввести код:

pole.Canvas.Pixels[x,y]:=MainColor;

9. Объявить глобальную переменную MainColor: TColor;

10. Проверить работу программы.

11. Для получения эффекта распыления, изменить процедуру PoleOnMouseMove в соответствии со следующим кодом:

For I:=1 to 50 Do

Begin

H:=25-random(50);

V:=25-random(50);

pole.Canvas.Pixels[x+h,y+v]:=MainColor;

End;

12. Проверить работы приложения.

13. Введенный ранее код пометить комментарием.

14. Для объекта Pole выбрать событие OnMouseDown и добавить код

pole.Canvas.Pen.Width :=5; //толщина рисования

pole.Color :=clBlack; //цвет заливки

pole.Canvas.Pen.Color :=clred; // цвет линии

pole.Canvas.Ellipse(x,y,x+100,y+200); // эллипс

15. Проверить работы приложения.

16. Заблокировать комментарием рисование эллипса.

17. Последовательно ввести ниже следующие строки кода, каждый раз проверяя их работу.

pole.Canvas.Arc(x,y,x+50,y+10,x-10,y-10,x+20,y+20);

 

pole.Canvas.LineTo(x,y) ;

 

pole.Canvas.Chord(x,y,x+50,y+10,х-10,у-10,х+20,у+20); замкнута и залита цветом

 

pole.Canvas.Pie(x,y,x+50,y+10,x-10,y-10,x+20,y+20);

 

pole.Canvas.Rectangle(x,y,x+30,y+40);

 

pole.Canvas.RoundRect(x,y,x+30,y+50,x+70,y+200);

 

18. Добавить на форму командную кнопку и ввести для ее события OnClick следующий код:

Var

pol: array[1..3] of TPoint; // координаты точек треугольника

Begin

pol[1].x := 10; pol[1].y := 50;

pol[2].x := 40; pol[2].y := 10;

pol[3].x := 70; pol[3].y := 50;

Form1.Canvas.Polygon(pol);

End;

 

19. Вывести на экран изображение перемещающегося кораблика, используя метод базовой точки, для этого:

  • для формы выбрать событие OnActivate и ввести код:

x:=0; y:=100;// базовая точка

Form1.Color:=clNavy;

Timer1.Interval := 50;

 

  • добавить на форму таймер и ввести для него код:

 

Titanik(x,y,form1.color); // стереть рисунок

if x < Form1.ClientWidth then

x := x+5 else begin // новый рейс

x := 0; у := Random(50) + 100;

end;

Titanik(x,у,clWhite); // нарисовать в новой точке

 

 

  • создать и объявить новую процедуру для вычерчивания кораблика:

procedure TForm1.Titanik(x,y: integer;color: TColor);

//x,yкоординаты базовой точки, color цвет корабля

const dx = 5; dy = 5;//масштаб кораблика

Var buf: TColor;