Графический редактор типа Paint на Delphi. Рисование Canvas. - Программирование - Портфолио - MariSoft.ru
Главная » Файлы » Программирование

Графический редактор типа Paint на Delphi. Рисование Canvas.
[ Скачать с сервера (202.1Kb) ] 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, рисование на канве
Просмотров: 15172 | Загрузок: 4616 | Комментарии: 5 | Рейтинг: 5.0/12
Всего комментариев: 3
3 Анонимка   (21 Июнь 2014 20:22)
Примитив. Ограниченный набор функций. biggrin
2 KatyFlaM   (17 Июнь 2012 04:30)
Спасибо
1 Аноним   (09 Июнь 2011 13:59)
Спасибо за программу.
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]