![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
Vardoulacha |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 184 Регистрация: 11.8.2005 Репутация: нет Всего: 8 |
Вообщем тут такой вопрос: у меня при запуске программы динамически создаются компоненты (TImage) с определенными картинками (например 5 компонентов с картинками img1.bmp, img2.bmp, и т.д. до img5.bmp всего 5 компонентов с 5-ю разными картинками) и вот задача в том чтобы при наведении на каждый Image он показал имя этой картинки (например в Label)
пример: 1) наводим курсор на изображение первой картинки 2) как-то узнать над каким компонентом мышка и узнать какое название картинки 3) отобразить это имя в Label я так понимаю что это наверное нужно делать через поиск компонентов и их полный перебор со сравнением их координат с координатами нахождения курсора (но это я так понимаю не совсем оптимальный вариант может можно это сделать как то по-другому) P.S. если я неправильно выразился попробую по-другому ![]() 1) есть 5 компонентов Image (создаются динамически) у каждого свое изображение загружено 2) как для каждой картинки отобразить например hint при этом для каждой Image текст хинта свой |
|||
|
||||
Yanis |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2937 Регистрация: 9.2.2004 Где: Москва Репутация: 72 Всего: 111 |
При создании компонента назначай им свой обработчик OnMouseMove в ктором определяй от какого Image идёт сообщение.
P. S. Если ничего не понял(а) из написанного, то я больше чем уверен, что тебе сейчас преподнесут весь код на блюдечке. Это сообщение отредактировал(а) Yanis - 28.3.2006, 12:18 |
|||
|
||||
Rennigth |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 21.6.2004 Где: Moscow Репутация: 49 Всего: 76 |
1. как сказал Yanis. 2. Поэксперементируй с функциями: - ControlAtPos - FindVCLWindow - GetCaptureControl Для хинта тебе не обязательно искать сам контрол, достаточно при создании указать текст хинта и property ShowHint выставить в True. -------------------- (* Honesta mors turpi vita potior *) |
|||
|
||||
Yanis |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2937 Регистрация: 9.2.2004 Где: Москва Репутация: 72 Всего: 111 |
||||
|
||||
Vardoulacha |
|
||||||||||||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 184 Регистрация: 11.8.2005 Репутация: нет Всего: 8 |
я тоже так делал но вот в чем лажа
как самую верхнюю процедуру назначить каждой компоненте? или я чего не так пишу Добавлено @ 13:46
2. ага уже экспериментировал вот только вот:
эта функция что возвращает вот это я не понял, то есть она возвращает хендл найденного компонента, я в этом новичек как теперь этот хендл использовать???
это видно должна отобразить хендл компоненты в позиции, координаты позиции можно указать GetCursorPos. Хм и опять встает вопрос а что дальше???
а вот это я вообще не понял что делает??? ![]() 3. хм в том то и прикол что хинт у меня для каждого компонента свой и тоже может динамически меняться ![]() Это сообщение отредактировал(а) Vardoulacha - 28.3.2006, 13:48 |
||||||||||||||||
|
|||||||||||||||||
Rennigth |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 21.6.2004 Где: Moscow Репутация: 49 Всего: 76 |
Для MouseEnter придеться ловить сообщения CM_MouseEnter; Добавлено @ 13:53 Они вреде должны не Handle возвращать а TControl, с ним потом и работать надо если он существует(обязательно проверяй на Assigned, <> nil). Например:
Это сообщение отредактировал(а) Rennigth - 28.3.2006, 13:55 -------------------- (* Honesta mors turpi vita potior *) |
||||||
|
|||||||
Yanis |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2937 Регистрация: 9.2.2004 Где: Москва Репутация: 72 Всего: 111 |
Я такого не писал. Это не моя цитата. |
|||
|
||||
Rennigth |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 21.6.2004 Где: Moscow Репутация: 49 Всего: 76 |
хм, быстрая цитата как-то не правильно отработала. не серчай. -------------------- (* Honesta mors turpi vita potior *) |
|||
|
||||
Tror |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 193 Регистрация: 29.4.2005 Где: Кишинёв Репутация: нет Всего: 4 |
- ControlAtPos
- FindVCLWindow - GetCaptureControl возврвщают TControl или TWinControl ну а дальше все как в примере Yanis, только вместо Sender хендл компонента
--------------------
Не говори всегда что знаешь, но знай всегда что говоришь. /Клавдий/============================================Кто может -- тот делает. Кто не может... тот получает сертификат MCSE ;) |
|||
|
||||
Yanis |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2937 Регистрация: 9.2.2004 Где: Москва Репутация: 72 Всего: 111 |
Ты действительно считаешь, что FindVCLWindow возвращает хендл? |
|||
|
||||
Tror |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 193 Регистрация: 29.4.2005 Где: Кишинёв Репутация: нет Всего: 4 |
оговорился я сорри ![]() --------------------
Не говори всегда что знаешь, но знай всегда что говоришь. /Клавдий/============================================Кто может -- тот делает. Кто не может... тот получает сертификат MCSE ;) |
|||
|
||||
Vardoulacha |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 184 Регистрация: 11.8.2005 Репутация: нет Всего: 8 |
щас буду пробовать предложенные варианты, а вообще меня седня с утра как громом поразило
![]() ![]() вообщем если ваши варианты не подойдут мне попытаюсь сделать через БД-координат каждого создаваемого компонента |
|||
|
||||
Vardoulacha |
|
||||||||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 184 Регистрация: 11.8.2005 Репутация: нет Всего: 8 |
вообщем вроде как работает: вот мой код
вот только как-то странно, на форме лежит еще один компонент Image (но он создан не динамически) дык вот при наведении на него сразу отображается в капшин Image1 если навести на динамически созданные компоненты то ничего не пишет остается Image1 (и даже при наведении на Button1 или Label1 все равно остается Image1 хотя кнопка и лейбла находится за пределами Image1) === Добавлено @ 05:56
этот код просто не хочет работать ![]()
Это сообщение отредактировал(а) Vardoulacha - 29.3.2006, 06:31 |
||||||||||||
|
|||||||||||||
Vardoulacha |
|
||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 184 Регистрация: 11.8.2005 Репутация: нет Всего: 8 |
ошибку пишет: [Error] Unit1.pas(117): Incompatible types: 'TImage' and 'TWinControl' |
||||||
|
|||||||
Vardoulacha |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 184 Регистрация: 11.8.2005 Репутация: нет Всего: 8 |
сейчас пробую сделать через БД (хранение координат каждой Image)
|
|||
|
||||
Yanis |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2937 Регистрация: 9.2.2004 Где: Москва Репутация: 72 Всего: 111 |
Нацарапал пример с панелями. надеюсь аналогия станет ясна:
|
|||
|
||||
Rennigth |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 21.6.2004 Где: Moscow Репутация: 49 Всего: 76 |
![]() Прошу тебя как человека, не делай так... Вот пример с эвентом на MouseMove
Добавлено @ 10:00 это с ControlAtPos
-------------------- (* Honesta mors turpi vita potior *) |
||||||
|
|||||||
Vardoulacha |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 184 Регистрация: 11.8.2005 Репутация: нет Всего: 8 |
Yanis, Rennigth
черт все ваши примеры рабочие ![]() P.S. хотел вам репутацию поднять, но оказалось что мне для этого нужно 100 постов, поэтому выскажусь так: огромное вам спасибо P.S.S. пока топик не закрывайте я свой код отпишу |
|||
|
||||
Vardoulacha |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 184 Регистрация: 11.8.2005 Репутация: нет Всего: 8 |
вообщем я сделал вот так (Yanis спасибо за код, твой код мне подошел больше, Rennigth твои коды тоже рабочие но мне как то не подошли)
вдруг кому еще текое же пригодится ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |