![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Динамическая панель
zxz © (2002-12-22 22:41:00)Здравствуйте.
Кто подскажет как сделать такую панель, чтобы она плавно появлялась при попадании мышки в определенное место формы и плавно исчезала при выходе мышки из области панели (какбы выдвигалась и задвигалась)???
zxz (2002-12-24 16:05:00) [1]всем спасибо ...
Tano (2002-12-23 11:29:00) [2]Нашел:
http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1040294919&n=0
Tano (2002-12-23 11:24:00) [3]Недавно оставлял в форуме кусок кода для изменения кнопки при входе/выходе мыши. Поищи по моему нику. В обработчике входа мыши в компонент:
если не стоит флаг "идет перемещение панели" (хоть глобальную переменную Boolean), то
запускай таймер(или см.ниже), которым наращивай нужную координату
и установи флаг "идет перемещение панели" (это против глюков при анимации).
Когда панель доползет до нормы - сбрось флаг.
При выходе - аналогично (в том же порядке, только перемещать панель в другую строну).
Вместо таймера при перемещении панели можно просто использовать цикл (for, while...), где меняешь координату, только вставь внутрь Application.ProcessMessages, чтобы прорисовывались изменения.
ScableR (2002-12-23 10:12:00) [4]После поподания ессно запускать таймер.
OlDemon (2002-12-23 10:09:00) [5]ИМХО лучше не в таймере, а при попадании на область по CM_MOUSEENTER
RWolf (2002-12-23 10:00:00) [6]В таймере следить за позицией мышки (GetCursotPos);
если зашла в требуемую область - в том же таймере выдвинуть панель в несколько приемов (изменением ее позиции/размеров);
если вышла - задвинуть обратно.
Можно еще поиграться с API функцией прокрутки окна (ScrollWindow).
Song (2002-12-23 08:56:00) [7]ну дык TPanel.Left/Top