Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Выезжающий Caption [D7, WinXP]


Neznaika ©   (2004-12-20 13:15:00) 

Еще один вопрос ... Надеюсь многие из Вас знакомы с Opera-ой, так вот, мне там при определенных скинах понравилось как сделан
Caption на панели управления, т.е. по наведению мыши текст как-бы увеличивается с нуля, при уходе уменьшается. Сделал тоже-самое на BitBtn с помощью таймера - красиво! , особенно при стиле ХР, но проблема в том что все это основанно на mousemove
и если кнопка находится близко к краю формы то когда курсор уходит за форму mousemove кончается, и таймер обрубается, надпись остается на кнопке на пол пути уменьшения. Делать кучку проверок для курсора не хочется (получить громадный исходник который может только Caption "двигать") И еще было бы не плохо избавиться от таймера. repeat, while и тд работают слишком быстро - пропадает эффект плавности.

//Большой получился вопрос надеюсь Вы поймете что я хочу!!!
или может есть готовые варианты?


GrayFace   (2004-12-22 17:23:00) [1]

RA ©   (20.12.04 17:18) [7]
Поэтому надо самому делать. Как? См. разные FAQ.

Нет. Есть у всех компонентов свойство WindowProcedure. Его можно заменять на свою, а ту, например, в Tag запихать, затем внутри делать обработку CM_MOUSEENTER(LEAVE) и вызов прошлой.


redlord   (2004-12-20 17:24:00) [2]

если избавится от таймера то вынеси в поток и используй sleep


RA   (2004-12-20 17:18:00) [3]

Надо вешать не на событие onmousemove, а на событиz onMouseEnter и onMouseLeave. Только в стандартных компонентах этих событий нет. А где есть? В rxLib есть, но там BitBtn нет. Поэтому надо самому делать. Как? См. разные FAQ.


DVM   (2004-12-20 16:45:00) [4]


> Либо я что-то не понимаю либо таймер тормозит.

Не понимаешь. Тормозит там не таймер а получение значения прогресса.


Neznaika   (2004-12-20 14:29:00) [5]

>>Поручик ©   (20.12.04 13:53) [4]

Может и действительно фигня.
Но если тебе интересно попробуй кинь на форму mediaplayer с загруженным avi файлом,timer,button,progressbar;
И по нажатию на кнопку активируй таймер по событию которого progressbaru присваевай сколько файла уже проиграно от его общей длины. Не знаю как у тебя получится но у меня на Р3 1200MHz до нажатия на кнопку картинка "летает" после - заметно тормозит.
Либо я что-то не понимаю либо таймер тормозит.


Поручик   (2004-12-20 13:53:00) [6]

Фигня, ничего атймер не тормозит, поставь пару проверок и все будет хорошо.


Neznaika   (2004-12-20 13:45:00) [7]

Ну а по поводу таймера, все-таки он неслабо затормаживает программу?
А симптичный,"живой" интерфейс - ХОЧЕТСЯ!


Sphinx   (2004-12-20 13:42:00) [8]

> Делать кучку проверок для курсора не хочется

А придется скорее всего :)


Neznaika   (2004-12-20 13:39:00) [9]

Ну скажите как избавиться от таймера!


Наверх

Титульная страница Поиск, карта сайта Написать письмо