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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.05.2011, 08:08   #1
NitroSki
Давно не
Пользователь
 
Аватар для NitroSki
 
Регистрация: 19.05.2011
Сообщений: 58
По умолчанию Кто делал это на canvas?

Доброе время суток всем пользователям.

Кто нибудь раньше реализовывал в Канве подобное:

Нужно сделать отмену последних действий на канве
Пока я реализовал в виде отмены одного последнего действия за счет рисования такого же объекта фоновым цветом
=====================
image1.canvas.Pen.Color:=clWhite;
image1.canvas.Pen.Width:=1;
image1.canvas.Polyline([Point(x0,y0),Point(x1,y1)]);
=====================
т.о. по виду как происходит отменя последнего действия. Но как можно сделать отмену всех последних действий на канве.

и еще:
При рисовании в Канве нужно сделать магнитность объектов т.е. нарисовал линию, далее подносишь к линии какой то другой объект и он примагничивается по центру этой линии. к примеру. И магнитность должна присутствовать во всех объектах.

Кто это реализовывал - подскажите советом или кодом. Чет у меня фантазии не хватает - как это реализовать.

Если на канве такое сделать не получится - подскажите какой другой элемент можно использовать для этих целей


Всем заранее спасибо!
========================
Сироткин Сергей
NitroSki вне форума Ответить с цитированием
Старый 27.05.2011, 08:30   #2
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Можно так попробовать. Перед тем как что то сделать сохраняйте содержимое канвы в массив BitMap. Например сделали массив на 20 штук и тогда последние 20 действий можно будет отменить
SERG1980 вне форума Ответить с цитированием
Старый 27.05.2011, 09:15   #3
NitroSki
Давно не
Пользователь
 
Аватар для NitroSki
 
Регистрация: 19.05.2011
Сообщений: 58
По умолчанию Магнитность

Хорошо - а кто знает как можно реализовать магнитность объектов??
NitroSki вне форума Ответить с цитированием
Старый 27.05.2011, 09:22   #4
maxionans
Форумчанин
 
Аватар для maxionans
 
Регистрация: 02.01.2010
Сообщений: 254
По умолчанию

ещё бы знать, что такое магнитность объектов
maxionans вне форума Ответить с цитированием
Старый 27.05.2011, 09:29   #5
NitroSki
Давно не
Пользователь
 
Аватар для NitroSki
 
Регистрация: 19.05.2011
Сообщений: 58
По умолчанию Повторяюсь

Цитата:
При рисовании в Канве нужно сделать магнитность объектов т.е. нарисовал линию, далее подносишь к линии какой то другой объект и он примагничивается по центру этой линии. к примеру. И магнитность должна присутствовать во всех объектах.

Кто это реализовывал - подскажите советом или кодом. Чет у меня фантазии не хватает - как это реализовать.
Я же писал - читай....еще раз

Если по албански объяснить - ТИППА АзЬКУ В БОК ИКРАНА ПАДНОСССИШЬ, и АНА САММА ТУДА ПРИЛИПЛЯИТСЯ,.
NitroSki вне форума Ответить с цитированием
Старый 27.05.2011, 11:29   #6
flexterful
Пользователь
 
Регистрация: 22.08.2008
Сообщений: 39
По умолчанию

Аська, шмаська - разницы никакой. Делаете массив всех объектов, дабы координаты были, пышите метод, которому подав елемент массива объектов, координаты мыша, и погрешность (на каком расстоянии начинать "прилипляетсе") и он возврашает булево. А сам метод - добро пожаловать на курс геометрии
Чего бы тут сделать, дабы ничего неделать?
flexterful вне форума Ответить с цитированием
Старый 27.05.2011, 12:03   #7
NitroSki
Давно не
Пользователь
 
Аватар для NitroSki
 
Регистрация: 19.05.2011
Сообщений: 58
По умолчанию

Спасибо за совет....буду пробовать
NitroSki вне форума Ответить с цитированием
Старый 02.06.2011, 10:13   #8
NitroSki
Давно не
Пользователь
 
Аватар для NitroSki
 
Регистрация: 19.05.2011
Сообщений: 58
По умолчанию

Теперь снова поинтересуюсь - подскажите, как мне задать позицию курсора по известным координатам.

Думал что вот так
Код:
Mouse.CursorPos.X:=100;
Вылезает ошибка. Левая часть не может приравниваться к правой.

Как сделать то подскажите. Есть координаты, надо сделать, чтобы курсор,допустим по нажатию Батона устанавливался по значению координат.

Прошу извинить за столь простые вопросы и не сильно критиковать...

Форум просерфил, не нашел ничего похожего...
NitroSki вне форума Ответить с цитированием
Старый 02.06.2011, 10:17   #9
NitroSki
Давно не
Пользователь
 
Аватар для NitroSki
 
Регистрация: 19.05.2011
Сообщений: 58
По умолчанию

снова приношу свои извинения за глупые вопросы...

Проблему решил сам.
Код:
SetCursorPos:=(x,y);
Может таким как я будет полезно.

Всем спасибо
NitroSki вне форума Ответить с цитированием
Старый 02.06.2011, 10:18   #10
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

SetCursorPos вам надо
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Эквалайзер...что это? кто это? Можно ли с ним подружиться? .Phoenix Мультимедиа в Delphi 45 08.04.2010 23:37
Кто-нибудь делал сайт в Ukoz? lilu1559 Помощь студентам 11 15.02.2010 20:49
кто делал вычисления суммы ряда? хелп! Akelas13 Общие вопросы C/C++ 1 09.06.2009 20:38