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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.10.2012, 21:01   #1
NaumOff
Пользователь
 
Регистрация: 25.07.2011
Сообщений: 48
По умолчанию Всплывающая подсказка на TImage

При наведении курсора на TImage надо выводить информацию о текущем пикселе картинки. TImage занимает всю форму. Проблема в том, что данные на картинке динамические, обновляются раз в секунду. Подсказка затирается при каждом обновлении картинки, поэтому рисование на его канве не подходит. Надо создавать область над канвой изображения и рисовать в ней. Как такое можно реализовать?
Что то подобное можно увидеть на графиках в Procces Explorer`e от Руссиновича.
NaumOff вне форума Ответить с цитированием
Старый 09.10.2012, 21:45   #2
hon
Форумчанин
 
Регистрация: 08.06.2011
Сообщений: 693
По умолчанию

При наводе мыши на картинку (OnMouse чегото-там) запрещать перерисовку, при уходе курсора разрешать перерисовку. Погугли "delphi Как поймать уход мыши с компонента".
hon вне форума Ответить с цитированием
Старый 09.10.2012, 21:47   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А я думаю что нужно создать некую форму, которая будет ползать за мышкой. На форме будет отображаться сама информация. Форму можно разукрасить как хинт.

P.S. А что это за мультипликация такая? Что ее нужно так вот каждую секунду обновлять? Это график?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.10.2012, 22:54   #4
NaumOff
Пользователь
 
Регистрация: 25.07.2011
Сообщений: 48
По умолчанию

Stilet, да, это динамический график. Идея интересная, сейчас что-нибудь набросаю.
hon, надо чтобы изображение продолжало изменяться. Уход мыши с компонента отлавливается. С этого и начинал: в OnMouseMove получал координаты мыши, по ним рассчитывал значения, рисовал на канве хинт, и если мышь все еще на канве обновлял хинт после построения графика. Да вот только график движется, значения меняются...
Хм, осенило. Координаты надо брать не из OnMouseMove, а расчитывать по GetCursorPos, а лучше по ScreenToClient(Mouse.CursorPos).
NaumOff вне форума Ответить с цитированием
Старый 09.10.2012, 23:02   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Хм, осенило.
Осени себя еще раз - открой для себя TChart
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.10.2012, 23:19   #6
chertovich
Форумчанин
 
Аватар для chertovich
 
Регистрация: 26.07.2009
Сообщений: 489
По умолчанию

А в чем проблема при каждой перерисовке изображения "наверх" рисовать "выплывающую" подсказку? То есть поместить код рисования подсказки в обработчик OnPaint последней и при флаге "всплывающая" подсказка рисовать.
Если в глубине души вы программист, то, следуя своим наклонностям, вы захотите написать кусок кода.
chertovich вне форума Ответить с цитированием
Старый 10.10.2012, 00:57   #7
NaumOff
Пользователь
 
Регистрация: 25.07.2011
Сообщений: 48
По умолчанию

chertovich, именно так и сделал. Проблема была в том, что рассуждал чуток иначе, залип на OnMouseMove. Получилось не хуже чем у мэтра Руссиновича).
Stilet, упаси Боже заново открывать для себя TChart. Нет, он хорош, но уж слишком тяжел и велик чтобы лупить моих воробьев. Я лучше ручками все нарисую, быстрее и красивее получается.

Последний раз редактировалось NaumOff; 10.10.2012 в 01:03.
NaumOff вне форума Ответить с цитированием
Старый 10.10.2012, 08:14   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
но уж слишком тяжел и велик чтобы лупить моих воробьев.
Хм... А если не секрет что за требования к программе, раз ты чарт считаешь тяжелым?
Кстати, TImage не менее легка. Отрисовывай тогда уж прямо на канве формы в событии OnPaint
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.10.2012, 12:14   #9
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

Цитата:
...упаси Боже заново открывать для себя TChart. Нет, он хорош, но уж слишком тяжел и велик чтобы лупить моих воробьев. Я лучше ручками все нарисую, быстрее и красивее получается.
откройте для себя GraphicsM.

Цитата:
А если не секрет что за требования к программе, раз ты чарт считаешь тяжелым?
наверняка лупит все точки (пара сотень тысяч, миллион, ...) в chart и использует его как хранилище.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 10.10.2012, 14:45   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
и использует его как хранилище.
А вот это зря...
Впрочем отрисовка на канве все равно потребует хранилища. Точно так же будет заполняться и раздуваться какой либо массив...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Всплывающая подсказка Dexes JavaScript, Ajax 5 20.02.2012 15:59
всплывающая подсказка ГОСЕАН Помощь студентам 4 15.11.2011 14:04
Всплывающая подсказка к изображению Eldrich JavaScript, Ajax 1 06.02.2011 13:11
Всплывающая подсказка Swatch Microsoft Office Access 1 18.03.2010 18:49
Всплывающая подсказка (С#) Лучик_света Помощь студентам 1 25.10.2008 10:44