Страницы: 1
RSS
Многострочная Всплывающая подсказка (My_Supertip) для Элементов UserForm.
 
Здравствуйте.  
Все в файле (97,4 КБ).
 
А не многовато - 700 строк кода - чтобы вывести всплывающую подсказку?  
 
На мой взгляд, это перебор...
 
Здравствуйте, Игорь.  
 
... чтобы вывести Универсальную_Многострочную_Культурную ....  
Если существует возможность прессонуть мою малограмотность в  красивый блиц-project - в надежде на это тему и создал.
 
Зациклил портянки (.Top/.Left)  
699.99  :
 
у меня на то, чтобы позиционировать форму возле ячейки ушло 60+, при том, что там сжато написано. Сейчас бы я это, думаю, в ~ 90 записал.  
 
плагин jQuery tooltipster с плюшками укладывается в ~ 400.  
 
так что не в этом суть. Главное, чтобы работало и работало хорошо.  
 
Сергей Кр, по хорошему, подсказка еще не должна выходить за пределы экрана.
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


https://github.com/nervgh
 
Спасибо Вам, Саша, за сердечный отклик и за поддержку.  
 
Ваша мысль насчет ЭКРАНА - абсолютно верна.  Но, боюсь:  
В ДАННОМ случае  "шуба выделки стоить НЕ будет".Так как :  
1.  Будучи Элементом формы, подсказка потребует условия:  
НЕскрывание за ЭКРАНОМ       A n d  (!!)  _  
наличие места (с учетом РАЗНОобразных размеров подсказки) слева/сверху НА ФОРМЕ  
Else  
Н Е ПОКАЗ  (который, НА ПРАКТИКЕ, и будет исполнен почти для ВСЕХ Элементов, кроме КРАЙНИХ Правых/Нижних) .  
Привыкший к несомненному и бесперебойному  всплыванию настоящих подсказок (в распоряжении у которых ВЕСЬ экран), КОНЕЧНЫЙ пользователь рискует вообще не узнать о существовании послания разработчика. Тогда, пусть уж лучше пользователь увидит НАЛИЧИЕ подсказки (хоть и в частичной смотрибельности) и САМ передвинет загнанную им на галерки (скорее всего - за временной НЕнадобностью ВСЕГО содержимого) форму.  
2.  С учетом низкого КПД пункта № 1, использование еще и API-функции (вероятность работы которой у ВСЕХ пользователей НЕ равна 100%) сведет, как МНЕ кажется, все усилия на разработку  НЕскрывания_За_ЭКРАНОМ  'к уровню 1913 года'.  
Или я что-то упустил?  
 
Тем не менее,  Ваша мысль дала мне пинка отработать НЕскрывание_За_ВСЕ_края_ФОРМЫ.  Причем, Несмотря_Ни_На_Что. Его и выкладываю:  
 
Дополнение № 1:  
1. НЕскрывание_За_ВСЕ_края_ФОРМЫ  
2. У одного и того же Элемента подсказка может многоштучечно всплывать в тематически РАЗНЫХ исполнениях и содержаниях.  
 
   
РЕМАРКА:  post_381496.rar (с Примерами использования и подробным прописыванием необходимого) может служить своеобразной ПАМЯТКОЙ ПО ИСПОЛЬЗОВАНИЮ (далее файл-Памятка). Постоянно дублировать (большой файл  и одни и те же комментарии)  нецелесообразно. С учетом этого и составил Дополнение. Поэтому:  
 
Проверьте в Дополнении № 1 работу подсказки и (если нет замечаний, то) можете:  
1. Скопировать UserForm3 (как еще один Пример использования) в  файл-Памятку.  
2. Т.к. изменения коснулись основополагающего модуля  MyCtrlTipText, то замените этот модуль в  файле-Памятке на новый из Дополнения № 1.  
 
Шкодно получилось:
 
Вопросы:  
1.Как поймать X и Y Элемента  в Элемент_MouseMove(..) именно при ОСТАНОВКЕ курсора (при движении по Элементу)?  
2. Как поймать в Элемент_MouseMove(..)  Н А Ч А Л О ДВИЖЕНИЯ курсора по Элементу?  
ПРИМ. У меня "ловиться" не точность координат, а, так сказать, "по промежутку во времени". При БЫСТРЫХ движения курсора по БЛИЗКОстоящим Элементам -это НЕ УСПЕВАЕТ срабатывать.  
Спасибо.
 
Посмотрите пример от ZVI. Не оно?
 
Благодарю, Юрий.  
Я уже и не знаю. Не уверен, что вообще правильно формулирую вопрос.(Что технически подразумевать по "остановкой/началом" движения курсора по Элементу UserForm  и их ли надо искать?) Просто я смотрю на поведение 'настоящих' Всплывающих Подсказок (которым, естественно, легче, т.к. они не являются объектами Excel).  
Я уже пробовал запараллелить GetCursorPos с проишествиями в _MouseMove(..) в одну упряжку. Отдельно распологающиеся Элементы на UserForm и без этого удалось отработать. Но, вот в  т е х  с а м ы х Выпадающих Меню Элементы распологаются влотную друг другу. И если быстро жухать по ним курсором, то DoEvents вызывает артефакты точности 'всплывания'.  
ПРИМ. Единственно, что я уже успел запарралелить - это себе голову. Может, кому с в е ж и й взгяд поможет...
 
Я не увидел в Вашем сообщении от 20.12.2012, 10:28 упоминания про форму, потому и предложил такой вариант :-) Если быстро дёргают мышку - какой смысл на такое короткое время отображать подсказку?
 
Нет, Юрий, в любом случае благодарю. В данной идее нет стандартных вариантов решения. Нужен коллаж мыслей и подходов.  
Естественно, понятия не имею какой механизм 'всплывания' подсказок реализован в Ribbon'овских Выпадающих Меню. Но в поведение у них заложено:  
1. При 'раннем' клике или при быстром 'проскакивании' курсора по Элементу - НЕ всплывать.  
2. Вспывать(а вот тут не могу знать: толи при ОСТАНОВКЕ курсора, толи /как сделано у меня/ через ОПРЕДЕЛЕННОЕ ВРЕМЯ (1сек) после наведения курсора на элемент, длиться 20 сек. и через 20 сек самостоятельно исчезать.  
3. Принудительно исчезать: при клике, при НАЧАЛЕ н о в о г о движения курсора или при снятии курсора с Элемента.  
Все это 'поведение' у меня реализовано, но (п.2) - "через ОПРЕДЕЛЕННОЕ ВРЕМЯ (1сек) после наведения курсора на элемент". А надо, видимо, все-таки "при ОСТАНОВКЕ курсора" или не знаю как по другому.
 
Эта тема неразделима с этой:  
http://www.planetaexcel.ru/forum.php?thread_id=48412&thread_id=48412&page_forum=lastpage&allnum_forum=7#post386688
 
Сергей Кр, есть разные типы подсказок. Вот две самых часто используемых  
 
1. http://learn.javascript.ru/task/podskazka-nad-elementom  
2. http://learn.javascript.ru/task/podskazka-sleduushaya-za-kursorom  
 
Там же сформулированы основные принципы их работы  
 
> В данной идее нет стандартных вариантов решения. Нужен коллаж мыслей и подходов.  
VBA формы - вчерашний век. Они расчитаны только на сухую функциональность. Чтобы было все по фенщую, в одной из тем (здесь на планете), я предлагал использовать внутри этих форм компонет WebBrowser. При таком подходе появляется гибкость настройки. Можно использовать анимацию, драг-н-дроп и другие плюшки.  
 
Еще о плюшках.  
 
Здесь я показывал функцию для анимирования в Excel. Анимировать можно все, что угодно (зависит от фантазии)  
http://www.excelworld.ru/forum/3-2974-32306-16-1354812739  
 
Тут старый пример  
http://www.excelworld.ru/forum/2-2227-1#26595  
 
Еще пример  
http://www.excelworld.ru/forum/2-2990-1#32448  
 
Все анимации использую браузерные таймеры в миллисекундах.
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


https://github.com/nervgh
 
> 1. Будучи Элементом формы, подсказка потребует условия...  
Много букв, не понял суть.  
 
> 2. С учетом низкого КПД пункта № 1, использование еще и API-функции  
можно без API
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


https://github.com/nervgh
Страницы: 1
Наверх