Графический редактор типа Paint на Delphi. Рисование Canvas.
[ Скачать с сервера (202.1 Kb) ]28 Марта 2010, 20:21

Простейший графический редактор позволяет рисовать карандашом, прямоугольник, прямоугольник с закругленными углами, произвольные линии. Также можно задавать цвет и толщину линий.

Рассмотрим рисование на канве (canvas) в делфи (delphi).
Для начала объявляем глобальные переменные для задания координат

var
  Form1: TForm1;
  x0,y0,x1,y1:integer;


Теперь нам необходимо знать чем именно рисовать. У формы есть свойство Tag. В зависимости от значения этого свойства можно будет рисовать заданные фигуры.
если равно 0, тогда рисуем карандашом
если равно 1, тогда рисуем прямоугольник
если равно 2, тогда прямоугольник со скругленными концами
если равно 3, тогда рисуем произвольные линии.
Пример кода: Form1.Tag:=1;

Теперь можно приступать к рисованию.
На щелчок мышки по форме MouseDown пишем процедуру, которая запоминает текущие координаты мышки и запускает процедуру движения мышки.

x0:=x;  x1:=x;
y0:=y;  y1:=y;
Canvas.MoveTo(x,y);


Процедура на движение мышки MouseMove:
if ssleft in shift then
begin
  case  form1.Tag of
  0:canvas.LineTo(x,y); //карандаш
  1:begin //прямоугольник
      canvas.Pen.Color:=form1.Color;
      canvas.Rectangle(x0,y0,x1,y1);
      canvas.Pen.Color:=colordialog1.Color;
      canvas.Rectangle(x0,y0,x,y);    
      x1:=x;
      y1:=y;
    end;
  2:begin //прямоугольник со скругленными концами
      canvas.Pen.Color:=form1.Color;
      canvas.RoundRect(x0,y0,x1,y1,50,50);
      canvas.Pen.Color:=colordialog1.Color;
      canvas.RoundRect(x0,y0,x,y,50,50);
      x1:=x;
      y1:=y;
    end;
  3:begin //произвольные линии
      randomize;
      begin
        for i:=0 to n do
        canvas.Pen.Color:=rgb(random(256),random(256),random(256));
        canvas.LineTo(random(form1.ClientWidth),random(form1.ClientHeight));
      end;
    end;
    end;
end;


Зададим толщину линии

Canvas.Pen.Width:=1;
либо
Canvas.Pen.Width:=updown1.Position;
panel1.Caption:=inttostr(updown1.Position);


Зададим цвет линии

Colordialog1.Execute;
Canvas.Pen.Color:=colordialog1.Color;
panel3.Color:=colordialog1.Color;


Скачать графический реактор можно здесь.

Категория: Бесплатные работы | Добавил: marisoft | Теги: Делфи, delphi canvas, рисование на канве
Просмотров: 23497 | Загрузок: 7474 | Комментарии: 5 | Рейтинг: 4.6/14
Всего комментариев: 3
avatar
0
1
Спасибо за программу.
avatar
0
2
Спасибо
avatar
0
3
Примитив. Ограниченный набор функций. biggrin
avatar