Страница 1 из 1

"Выпадающий" Label на форме

Добавлено: 07 мар 2008, 01:25
VictorM
Здравствуйте, Уважаемые.
Как-то видел в одном из проектов Excel такую "фишку".
На форме вверху расположен Label, видна только небольшая нижняя часть (полоска). При наведении курсора на эту полосу - "выезжает" вниз весь Label и находится в открытом положении, пока курсор в пределах этого объекта. При перемещении курсора за пределы объекта он, через некоторое время, опять скрывается вверх.
Кто нибудь знает как такое можно реализовать?
Спасибо.

Re: "Выпадающий" Label на форме

Добавлено: 07 мар 2008, 19:05
VictorM
В дополнение:
нашел я эту программу - Atled Payment Master '99 ver 7.0
Выдернул код который делает то, о чем я писал выше (да простит меня автор - только для изучения). И вроде все получилось, но оказалось все не так просто.
Программа поставляется exe файлом apm81x97.exe и инсталируется в систему. В процессе установки прописывает специализированные библиотеки.
Так вот, на машине на которой эта АРМ устанавливалась пример работает как надо, даже после деинсталяции самой программы (качество деинсталяции:rolleyes :) , т.е. библиотеки остаются и все работает.
Когда же я, на радостях :) , запустил пример на другой машине, на которой не устанавливалась эта АРМ, сразу вылезла ошибка :confused: нет библиотек...
И вот вопрос - можно ли как-то с этим справиться?
p.s. Приложенный файл как раз и должен вызовать ошибку при запуске формы.

Re: "Выпадающий" Label на форме

Добавлено: 08 мар 2008, 01:18
Aent
VictorM, ну все такие вещи делаются практически одинаково.
Размещаете на форме таймер(скажем из VB6) и после обнаружения мыши в
определённой области начинаете прявлять и двигать анимируемый объект.
Но будут проблемы с лицензией. Так что наиболее правильно сделать это не
через контрол а с помощью WinAPI и callback. Пример здесь:
http://www.citforum.ru/programming/vb/v ... pi/8.shtml
Так же смотрите: http://www.tushar-mehta.com/excel/software/vba_timer/

Re: "Выпадающий" Label на форме

Добавлено: 08 мар 2008, 01:30
Aent
А можно и без таймера обойтись. Одним sleep.
Посмотрите как отрисовываются ProgressMeter
http://www.andypope.info/vba/pmeter.htm
и вообще про рисование на пользовательских формах VBA
http://www.andypope.info/vba/userformdraw.htm

Re: "Выпадающий" Label на форме

Добавлено: 08 мар 2008, 13:21
VictorM
Aent, большое спасибо за ссылки. Попытаюсь разобраться WinApi.

Re: "Выпадающий" Label на форме

Добавлено: 09 мар 2008, 01:37
VictorM
Получилось вот такое :rolleyes: (см. вложенный файл).
Как подсказал Aent, применил sleep.
Может что и не правильно, с точки зрения профессионала, но выполняется то, что я хотел :)

Re: "Выпадающий" Label на форме

Добавлено: 09 мар 2008, 11:11
VictorM
А вот это - то, ради чего все затевалось.
Выпадающий календарь от Avsha

Re: "Выпадающий" Label на форме

Добавлено: 09 мар 2008, 14:21
AlexZZZ
&quot писал(а):А вот это - то, ради чего все затевалось.
Выпадающий календарь от Avsha
Прикольно! Новая игра: поймай календарик,..если сможешь. :p А он ещё и дразнится! :D

Re: "Выпадающий" Label на форме

Добавлено: 09 мар 2008, 17:30
VictorM
Прикольно! Новая игра: поймай календарик,..если сможешь. А он ещё и дразнится!
не знаю, у меня все четко. :confused: При наведении курсора - выезжает вниз. Пока курсор в пределах изображения - находится на месте. А при перемещении курсора за пределы изображения - поднимается вверх.
А вообще-то я уже говорил, что это только пример выполнения задачи, поставленной в самом начале темы и ничего более.