Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> OnMouseEnter & OnMouseLeave 
V
    Опции темы
santilaas
Дата 11.11.2007, 15:50 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 322
Регистрация: 28.8.2005
Где: Блага

Репутация: нет
Всего: нет



Привет всем!
Проблема в следующем:
есть форма, на ней друг за другом (с выравниванием по верху) расположены панели (цвета clMenu).
Как сделать, чтобы при попадании курсора мыши в область любой панели, её цвет менялся (скажем, на clRed), при убирании курсора с панели, цвет панели восстанавливался?
Вроде как нужно воспользоваться процедурами:
Код

private
   { Private declarations }
   procedure CMMouseEnter(var msg:TMessage); message CM_MOUSEENTER;
   procedure CMMouseLeave(var msg: TMessage); message CM_MOUSELEAVE;
...
procedure TFPopup.CMMouseEnter(var msg: TMessage);
begin
   inherited; 
   FPopup.FlatPanel1.Color:= clRed;
end;

procedure TFPopup.CMMouseLeave(var msg: TMessage);
begin
   inherited;
   FPopup.FlatPanel1.Color:= clMenu;
end;
 
- этот пример работает для формы (если курсор входит в пределы формы и покидает их), притом здесь есть недостаток - 
1) если курсор уходит с формы, например, на другую форму этого же приложения, 
то все работает, если же уходит в другую область - не срабатывает - в чем тут дело?
2) как эти процедуры, если действительно они и нужны, прикрутить в моем случае (именно для панелей)?
Заранее спасибо!

Это сообщение отредактировал(а) santilaas - 11.11.2007, 15:51


--------------------
[
PM MAIL   Вверх
ivan219
  Дата 11.11.2007, 21:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1121
Регистрация: 19.11.2005
Где: Планета земля

Репутация: 5
Всего: 12



Если есть стандартные обработчики:
Код

procedure TForm1.MouseEnter(Sender: TObject);
begin
 Sender.Color:= clRed;
end;

procedure TForm1.MouseLeave(Sender: TObject);
begin
 Sender.Color:= clMenu;
end;

и присвой их всем панелям.

Это сообщение отредактировал(а) ivan219 - 11.11.2007, 21:07
PM MAIL ICQ   Вверх
Alexeis
Дата 12.11.2007, 00:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 34
Всего: 459



ivan219, они есть не во всех делфях.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
santilaas
Дата 12.11.2007, 05:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 322
Регистрация: 28.8.2005
Где: Блага

Репутация: нет
Всего: нет



так как быть?


--------------------
[
PM MAIL   Вверх
Alexeis
Дата 12.11.2007, 11:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 34
Всего: 459



  Проще поставить Delphi 2007, а надежное решение я делал только на таймере. Т.е. как только мышь в пределах запускаю таймер и по таймеру проверяю, находиться ли она в пределах компонента. 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
ivan219
  Дата 12.11.2007, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1121
Регистрация: 19.11.2005
Где: Планета земля

Репутация: 5
Всего: 12



Цитата(Alexeis @  12.11.2007,  00:52 Найти цитируемый пост)
ivan219, они есть не во всех делфях.

Странно, а начиная с какой Delphi они есть?
Цитата(santilaas @  12.11.2007,  05:50 Найти цитируемый пост)
так как быть?

santilaas, если у тебя нет тогда можно свой компонент на его основе сделать где они будут.
 
PM MAIL ICQ   Вверх
ama_kid
Дата 12.11.2007, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


АСУТП-кодер
***


Профиль
Группа: Комодератор
Сообщений: 1460
Регистрация: 5.3.2007
Где: Москва

Репутация: 9
Всего: 95



santilaas, посмотри аттач - я попробовал накидать тестовое приложение, может почерпнешь что полезное...

Присоединённый файл ( Кол-во скачиваний: 19 )
Присоединённый файл  Test2.rar 3,31 Kb


--------------------
самурай без меча подобен самураю с мечом, но только без меча 
PM MAIL   Вверх
Alexeis
Дата 12.11.2007, 14:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 34
Всего: 459



Цитата(ivan219 @  12.11.2007,  11:56 Найти цитируемый пост)
Странно, а начиная с какой Delphi они есть?

Появились в Delphi X, где Delphi X определяется соотношением Delphi 7 < Delphi X <= Delphi 2006  smile 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
ivan219
  Дата 13.11.2007, 00:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1121
Регистрация: 19.11.2005
Где: Планета земля

Репутация: 5
Всего: 12



santilaas, так реч идёт про обычную панель TPanel ???
PM MAIL ICQ   Вверх
ivan219
  Дата 13.11.2007, 01:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1121
Регистрация: 19.11.2005
Где: Планета земля

Репутация: 5
Всего: 12



Если это TPanel то в архиве продвинутый вареант ставится как компонент.

Присоединённый файл ( Кол-во скачиваний: 23 )
Присоединённый файл  FPanel.rar 0,44 Kb
PM MAIL ICQ   Вверх
ivan219
  Дата 13.11.2007, 01:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1121
Регистрация: 19.11.2005
Где: Планета земля

Репутация: 5
Всего: 12



В него добавленны события: OnMouseLeave, OnMouseEnter, OnPaint также имеется доступ к Canvas.

Это сообщение отредактировал(а) ivan219 - 13.11.2007, 01:07
PM MAIL ICQ   Вверх
santilaas
Дата 20.11.2007, 02:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 322
Регистрация: 28.8.2005
Где: Блага

Репутация: нет
Всего: нет



ama_kid,  ivan219 - спасибо Вам за помощь - отличные пример и компонент 


--------------------
[
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0788 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.