Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.03.2009, 21:28   #1
Vladya
Форумчанин
 
Аватар для Vladya
 
Регистрация: 04.11.2008
Сообщений: 360
По умолчанию Как писать графический редактор в Delphi 7

Всем привет! У меня такая проблема, нужно написать графический редактор на подобии паинта, но проблема в том что я никогда раньше даже чуть-чуть не работал с графикой, а надо срочно, так вот о чем я: как написать процедуру что бы на паинт боксе рисовался квадрат, эллипс, ну короче разные фигурки, для линии я как то с горем пополам сделал, а вот на остальное не могу сообразить. Вот то что я написал для линии подскажите как и куда написать для других фигур пожалуйста.
Код:
procedure TForm1.PaintBox1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
if SpeedButton1.Down then PaintBox1.Canvas.MoveTo(X, Y);
end;

procedure TForm1.PaintBox1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
if SpeedButton1.Down then PaintBox1.Canvas.LineTo(X, Y);
end;
Да вот еще меня интересует такая вещь: на форуме нашёл пример программы (то что мне нужно) так там для рисования различных фигур использовали какой то Driwing и присваивали ему фигуру которая должна прорисовываться, можете обьяснить что это, этот дривинг, и почему у меня такое не пашет.

Следующая тема с подобным ("Графика в Delphi 7") не несущим смысловой нагрузки названием будет молча удалена
Мой скромненький сайт

Последний раз редактировалось mihali4; 18.03.2009 в 21:44.
Vladya вне форума Ответить с цитированием
Старый 18.03.2009, 21:37   #2
Роман Радер
Форумчанин
 
Аватар для Роман Радер
 
Регистрация: 16.12.2006
Сообщений: 859
По умолчанию

http://www.delphisources.ru/pages/fa...int_brush.html
посмотрите такое
Роман Радер вне форума Ответить с цитированием
Старый 18.03.2009, 22:14   #3
Vladya
Форумчанин
 
Аватар для Vladya
 
Регистрация: 04.11.2008
Сообщений: 360
По умолчанию

Дело в том что именно это я и смотрел, только я ж говорю что там все фигуры строятся с помощью какого то Drawing'а а что это такое я не могу въехать...
Мой скромненький сайт
Vladya вне форума Ответить с цитированием
Старый 18.03.2009, 22:34   #4
Роман Радер
Форумчанин
 
Аватар для Роман Радер
 
Регистрация: 16.12.2006
Сообщений: 859
По умолчанию

DrawingTool - это просто флаг - означает какую фигуру сейчас рисуем.
нажали на кнопку "Линии" - DrawingTool стал значением dtLine, и так далее.
Используется при отрисовке - узнаем что именно сейчас рисуем.
Роман Радер вне форума Ответить с цитированием
Старый 18.03.2009, 22:45   #5
Феска
Пользователь
 
Регистрация: 16.11.2007
Сообщений: 20
По умолчанию

Если срочно нужна программка для рисования, могу прислать на мыло мой редактор, однако там все фигуры подгружаются через ddl, если тебе такое подходит, мыло в студию=)
Феска вне форума Ответить с цитированием
Старый 18.03.2009, 22:58   #6
Vladya
Форумчанин
 
Аватар для Vladya
 
Регистрация: 04.11.2008
Сообщений: 360
По умолчанию

мне конечно не очень срочно нужно но все же, если можно то скинь посмотрю... я те в личку напишу.
Мой скромненький сайт
Vladya вне форума Ответить с цитированием
Старый 19.03.2009, 16:04   #7
soonner
Пользователь
 
Аватар для soonner
 
Регистрация: 14.03.2009
Сообщений: 97
По умолчанию

Хм я не пойму почему бы не работать через case и на TImage. Намного удобней.
....Canvas.Ellipse(x0,y0,x1,y1)
....Canvas.Rectangle(x0,y0,x1,y1)
или по кнопками завести переменный типа boolean
и уже на имаге при моусдовн
if paint_krug= true then ....
soonner вне форума Ответить с цитированием
Старый 19.03.2009, 20:46   #8
Vladya
Форумчанин
 
Аватар для Vladya
 
Регистрация: 04.11.2008
Сообщений: 360
По умолчанию

Ребята, кто нить мне подскажет как в этом редакторе замутить что бы можно было рисовать все что угодно, ну по типу как в стандартном виндосовском паинте, береш карандаш и рисуеш?
А с фигурами я уже разобрался, спасибо всем большое, за помощь, там оказываеться все просто, и даже очень...
Мой скромненький сайт
Vladya вне форума Ответить с цитированием
Старый 20.03.2009, 10:38   #9
lexaltd
Форумчанин
 
Регистрация: 21.07.2008
Сообщений: 192
По умолчанию

Код:
var
  Form1: TForm1;
  Flag : boolean = false;
implementation

{$R *.dfm}

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  Flag := true;
  Image1.Canvas.MoveTo(X, Y);
end;

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  if Flag then
   Image1.Canvas.LineTo(X,Y);
end;

procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  Flag := false;
end;
lexaltd вне форума Ответить с цитированием
Старый 20.03.2009, 11:34   #10
Роман Радер
Форумчанин
 
Аватар для Роман Радер
 
Регистрация: 16.12.2006
Сообщений: 859
По умолчанию

Вот, вчера написал статью
http://www.delphisources.ru/pages/ar...-19-03-09.html
Роман Радер вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
исходник графического редактора, на Delphi, типа Paint spamer Общие вопросы Delphi 10 09.04.2016 01:15
графический редактор на Delphi gulfiyush Помощь студентам 3 05.12.2007 13:07