Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Графика и игры
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 14.04.2014, 09:04
Demlan Demlan вне форума
Прохожий
 
Регистрация: 09.09.2011
Сообщения: 27
Репутация: 10
По умолчанию ГИС самопал

Всем привет. Надо сделать план местности. Кинул на форму ScrollBox. В него поместил Image. В него поместил большую картинку, чтобы края были за пределами. На картинке есть дома. Мне надо чтобы при наведении на определенный дом во втором Image выводилась фото этого дома. Решаю данную проблему через опу... кидаю на изображение на место дома другой Image и при наведении на него срабатывает событие... Но домов много и как мне кажется это не выход... Подскажите другой способ решения данной проблы пожалуйста.
Ответить с цитированием
  #2  
Старый 14.04.2014, 09:32
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от Demlan
Надо сделать план местности. Кинул на форму ScrollBox. В него поместил Image. В него поместил большую картинку, чтобы края были за пределами. На картинке есть дома. Мне надо чтобы при наведении на определенный дом во втором Image выводилась фото этого дома. Решаю данную проблему через опу... кидаю на изображение на место дома другой Image и при наведении на него срабатывает событие... Но домов много и как мне кажется это не выход... Подскажите другой способ решения данной проблы пожалуйста.
В событии OnMouseMove у Image проверяй координаты X, Y на попадание в один из прямоугольников (PtInRect).
Ответить с цитированием
Этот пользователь сказал Спасибо poli-smen за это полезное сообщение:
Demlan (14.04.2014)
  #3  
Старый 14.04.2014, 10:07
Demlan Demlan вне форума
Прохожий
 
Регистрация: 09.09.2011
Сообщения: 27
Репутация: 10
По умолчанию

Цитата:
Сообщение от poli-smen
В событии OnMouseMove у Image проверяй координаты X, Y на попадание в один из прямоугольников (PtInRect).
Данный метод не подходит, так как изображение выходит за пределы одной формы. Точнее одного экрана...
Ответить с цитированием
  #4  
Старый 14.04.2014, 10:11
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от Demlan
Данный метод не подходит, так как изображение выходит за пределы одной формы. Точнее одного экрана...
Разве при выходе изображения за пределы формы/экрана событие OnMouseMove у Image даёт неверные координаты X, Y ?
Ответить с цитированием
  #5  
Старый 14.04.2014, 10:23
Demlan Demlan вне форума
Прохожий
 
Регистрация: 09.09.2011
Сообщения: 27
Репутация: 10
По умолчанию

Использовал Mouse.CursorPos.X. А надо было использовать IntToStr(x) в Image1MouseMove...Это я немного запупил. Спасибо большое.

А если здание стоит ромбом, как тогда отследить положение7

Последний раз редактировалось M.A.D.M.A.N., 14.04.2014 в 11:57.
Ответить с цитированием
  #6  
Старый 14.04.2014, 11:12
draginimp draginimp вне форума
Прохожий
 
Регистрация: 02.04.2014
Сообщения: 37
Версия Delphi: delphi 7
Репутация: 10
По умолчанию

Да так же квадратом!!
Еще можно прописать +/- погрешность. Если, конечно, у Вас дома не слишком плотно стоят.
Ответить с цитированием
  #7  
Старый 14.04.2014, 13:18
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Вот, еле нашёл в сорцехране свой ну очень (1998) старинный проект - делал тогда по работе каталог инструментов и для него пришлось разрабатывать компонент с "подсветкой" областей на рисунке, вам это не нужно точно, но там организуются "не прямоугольные" сообщества регионов (хранятся в самом рисунке), а при попадании на них мышки возможна реакция, вот это вам скорее всего подойдёт. Есть и редактор полигонов, посмотрите пжлст

З.Ы. А вот и пример (exe+src) отыскался того, как это должно было работать

Последний раз редактировалось Alegun, 14.04.2014 в 15:45.
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 17:16.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025