1

Тема: AHK: Альтернативный Tooltip

Тема для обсуждения не стандартного Tooltip.

Win 10 x64
AHK v1.1.33.02
                       Справка тебе в помощь.

2

Re: AHK: Альтернативный Tooltip

Уже было такое. Я не против альтернатив, хотя сейчас библиотеки на v1, думаю, уже не особо актуальны.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3

Re: AHK: Альтернативный Tooltip

Да видел. Меня чем-то не устроило, написал свой вариант по проще.

Win 10 x64
AHK v1.1.33.02
                       Справка тебе в помощь.

4

Re: AHK: Альтернативный Tooltip

А в чём там преимущество?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

5 (изменено: Alectric, 2024-07-20 22:05:38)

Re: AHK: Альтернативный Tooltip

teadrinker пишет:

Публичные методы объекта:

1. Show(x, y, timeout) — показ ранее скрытого ToolTip'а, указание координат и времени показа.
   x и y — координаты, если пустые значения — ToolTip будет показан возле курсора
   timeout — время в милисекундах, через которое ToolTip будет скрыт, если число положительное, либо уничтожен, если отрицательное
2. Hide() — скрытие ToolTip
3. SetText(text) — изменение текста
4. SetTitle(icon, title) — изменение иконки и заголовка
5. Destroy() — уничтожение экземпляра объекта

Основное - это мерцание при частом обновлении информации;
второе - не работает с несколькими мониторами;
третье - нет метода изменения параметров шрифта, фона налету;
четвертое - изменение текста, параметров и отображение tooltip не одним методом.

Win 10 x64
AHK v1.1.33.02
                       Справка тебе в помощь.

6

Re: AHK: Альтернативный Tooltip

Alectric пишет:

Основное - это мерцание при частом обновлении информации

Я запустил ваш код, ToolTip довольно заметно мерцает.

Alectric пишет:

не работает с несколькими мониторами

Можете пояснить, в чём тут проблема? У меня один, я не совсем в теме.

Alectric пишет:

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

Не совсем понимаю, зачем это надо, ну ладно, у всех свой способ использования.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

7

Re: AHK: Альтернативный Tooltip

А, да это не ToolTip вовсе, просто Gui без полосы заголовка. Нет иконки, нет заголовка, нельзя сделать стиль c хвостиком.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

8 (изменено: Alectric, 2024-07-20 22:37:52)

Re: AHK: Альтернативный Tooltip

teadrinker пишет:

Можете пояснить, в чём тут проблема? У меня один, я не совсем в теме.

Проблема в определении координат границ экрана, ваша версия просто не переходит на другой экран (упирается в край).

Win 10 x64
AHK v1.1.33.02
                       Справка тебе в помощь.

9

Re: AHK: Альтернативный Tooltip

Проблема в определении координат границ экрана

А, ну это небольшая проблема, там просто ограничение стоит:

         xMax := A_ScreenWidth - W - 10
         yMax := A_ScreenHeight - H - 10

Достаточно просто заменить A_ScreenWidth и A_ScreenHeight на значения длины и ширины общего экрана.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

10

Re: AHK: Альтернативный Tooltip

teadrinker пишет:

Я запустил ваш код, ToolTip довольно заметно мерцает.

Сравни:

SetBatchLines,-1

Tooltip1 := new ToolTip({ text: " Look!"})

loop
{
sleep,30
mousegetpos,mx,my,mw,mc
;tooltip % a_tickcount "`n" mx "`n" my "`n" mw "`n" mc
Tooltip1.SetText(a_tickcount "`n" mx "`n" my "`n" mw "`n" mc)
Tooltip1.Show()
}
Win 10 x64
AHK v1.1.33.02
                       Справка тебе в помощь.

11

Re: AHK: Альтернативный Tooltip

Ну да, ваш меньше мерцает, но это не ToolTip. Обычное окно можно, насколько я помню, вообще немерцающим сделать, используя WS_EX_COMPOSITED.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

12

Re: AHK: Альтернативный Tooltip

Попробовал, все равно "поблескивает".

Win 10 x64
AHK v1.1.33.02
                       Справка тебе в помощь.

13

Re: AHK: Альтернативный Tooltip

У меня нет.

Gui, New, % "+E" . (WS_EX_COMPOSITED := 0x2000000) | (WS_EX_LAYERED := 0x80000), Window without flickering
Gui, Font, s26 c0044AA, Consolas
Gui, Add, Text, center hwndhTime, 000:00:00:00
Gui, Show
SetTimer, Time, 1
Return

Time:
   GuiControl,, %hTime%, % A_Hour . ":" . A_Min . ":" . A_Sec . ":" . SubStr(A_MSec, 1, 2)
   Return

GuiEscape:
GuiClose:
   ExitApp
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

14 (изменено: Alectric, 2024-07-20 23:01:16)

Re: AHK: Альтернативный Tooltip

Я WS_EX_LAYERED не поставил. И правда не мерцает.

Upd:
После включения прозрачности снова начинает мерцать.

Win 10 x64
AHK v1.1.33.02
                       Справка тебе в помощь.

15

Re: AHK: Альтернативный Tooltip

Alectric пишет:

После включения прозрачности снова начинает мерцать

Скорее всего, прозрачность и WS_EX_COMPOSITED несовместимы.
Если уж нужно много графических фишек, лучше использовать GDI Plus (Gdip.ahk). А ToolTip — это просто небольшое информационное окно, появляющееся на короткое время. Есть ли смысл там делать столько всяких наворотов?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

16

Re: AHK: Альтернативный Tooltip

Исправил пару багов.

Win 10 x64
AHK v1.1.33.02
                       Справка тебе в помощь.