Порядок выполнения
Постановка задачи
Разработать приложение, реализующее основные функции графического редактора.
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;