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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.01.2010, 20:33   #11
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Цитата:
trunc((x-x1)*(y2-y1)/(x2-x1)+ y1)
Я бы все-таки использовал Round... Он вроде немного плавности подбавит...
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 12.01.2010, 20:37   #12
W0LF
Форумчанин
 
Аватар для W0LF
 
Регистрация: 28.03.2008
Сообщений: 940
По умолчанию

Вот есть точка TPoint, как переместить плавно на ее координаты, в примере raxp'a оно перемещает с добавлением к координатам курсора, а если передвинуть надо на 0,0 - то нечего не выйдет...
W0LF вне форума Ответить с цитированием
Старый 12.01.2010, 20:39   #13
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

Цитата:
Я бы все-таки использовал Round...
согласен.
Цитата:
Вот есть точка TPoint
вот и задавайте x2, y2 от второй точки... ясно, что нужно проверять условие x2>x1, если наоборот, то for x:=x1 downto x2
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation

Последний раз редактировалось raxp; 12.01.2010 в 20:42.
raxp вне форума Ответить с цитированием
Старый 12.01.2010, 20:42   #14
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Цитата:
а если передвинуть надо на 0,0 - то нечего не выйдет...
Ставьте условие или используйте ABS. А то и вообще, оставьте как есть, ведь если X2-X1 < 0, то XN + (-XDelta) даст XN - XDelta. А еще я бы посоветовал вынести все это дело в функцию MoveCursorTo(X,Y):Boolean;
И забудьте про неразумный For! Используйте While и прибавляйте вручную.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ

Последний раз редактировалось Alex Cones; 12.01.2010 в 20:45.
Alex Cones вне форума Ответить с цитированием
Старый 12.01.2010, 20:42   #15
W0LF
Форумчанин
 
Аватар для W0LF
 
Регистрация: 28.03.2008
Сообщений: 940
По умолчанию

Взял
Код:
x2:= 0; 
y2:= 0;
но курсор стоит и недергаеться...
W0LF вне форума Ответить с цитированием
Старый 12.01.2010, 20:44   #16
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

13, 14 посты.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 12.01.2010, 20:49   #17
W0LF
Форумчанин
 
Аватар для W0LF
 
Регистрация: 28.03.2008
Сообщений: 940
По умолчанию

Такс, спс, работает, но вот загвоздка, если координата курсора y=0 и задать ей координату тоже y=0 то выйдет ошибка
W0LF вне форума Ответить с цитированием
Старый 12.01.2010, 20:52   #18
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Когда вынесли в отдельную функу делайте проверку на совпадение и только при разнице пропускайте дальше. А если разнится только одна координата - измените пункт назначения на один пиксель.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 12.01.2010, 20:58   #19
W0LF
Форумчанин
 
Аватар для W0LF
 
Регистрация: 28.03.2008
Сообщений: 940
По умолчанию

Проблема в следующем, если новая точка перемещения по Y равна позици курсора по Y - то ошибка...

Неа, работает некоректно, если ввести например x=1000 и y=60 - перемещает мгновенно, и другие координаты тоже резко переводит... ((((

Последний раз редактировалось W0LF; 12.01.2010 в 21:03.
W0LF вне форума Ответить с цитированием
Старый 12.01.2010, 21:01   #20
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Проблема стала ясна еще в Вашем предыдущем посте. Вот Ваше решение:
Код:
Function MoveCursorTo(Var X,Y:SmallInt):Boolean;
 Var
  CX,XY:SmallInt;
 begin
  GetCursorPos(CX,CY);
  If CX = X Then Inc(X);
  If CY = Y Then Inc(Y);
  ...
  GetCursorPos(CX,CY);
  If (CX = X) And (CY = Y) Then Result:=TRUE;
 End;
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передвижение фигур rododendron Общие вопросы C/C++ 1 01.06.2009 20:38
Алгоритм (плавное увеличение) BOBAH13 Общие вопросы Delphi 4 07.01.2009 20:01
Плавное появления формы Claster Помощь студентам 4 12.11.2008 23:59
Передвижение формы JIK Помощь студентам 2 12.07.2008 17:45
Плавное появление формы HAMMAN Общие вопросы Delphi 3 15.05.2008 14:20