Orion9

|
Posted: Sun Jul 27, 2025 00:33 Post subject: |
|
|
Loopback wrote: | У меня тоже времени не сказать чтобы много. |
О срочности речи не было. Да и вообще это не так уж и обязательно. Просто если будет возможность менять текст подсказки без вызова нового окна, это позволит использовать подсказку в виде "висящего табло", в котором содержимое обновляется без мелькания окон.
Loopback wrote: | Но в чём проблема с использованием LAST_HINT_WINDOW? |
Немного смутило, что в справке говорится об использовании задержки, если хэндл не возвращается.
Loopback wrote: | Стили по хэндлу менять точно нет. |
А вообще это можно как-то сделать на уже отображенной подсказке? Опять же, сугубо факультативно.
Loopback wrote: | Не знаю пока, надо тестировать. |
Да вот сделал на скорую руку, думал баг проявится, но нет - ТС ни разу не завалился:
Code: | ControlSetHint /F /D:50 /B:5 17 "F7Hint"
Func F7Hint()
Return "F7 hint text"
EndFunc
ControlSetMouseAction /L /B:5 17 F7MouseAction
Func F7MouseAction()
ShowPopupMenu /D /F "CreateF7Menu"
EndFunc
Func CreateF7Menu()
Local txt
txt = txt & 'MENUITEM "Menu 1", 10000' & auCRLF
txt = txt & 'MENUITEM "Menu 2", 10000' & auCRLF
txt = txt & 'MENUITEM "Menu 3", 10000' & auCRLF
txt = txt & 'MENUITEM SEPARATOR' & auCRLF
txt = txt & 'MENUITEM "Settings...", 10000' & auCRLF
Return txt
EndFunc |
В реальности все сложнее. Я так подозревваю, проблема может быть из-за того, что в обеих функциях у меня используется объект Plugin. Хинт я уже сбрасывал:
 Hidden text Code: | ControlSetHint /F /D:50 /B:7 17 "AutorunHints"
Func AutorunHints()
Local A_Version, A_Copyright, A_DateTime, _
A_Wdx = AUTORUN_PATH & "\Autorun.wdx", txt
If IsPressed (KEY_SHIFT) Then Return GetState("libs")
If IsPressed (KEY_CTRL) Then
txt = GetState("procs")
If StrLen(txt) > 0 Then txt = auCRLF & txt
Return GetState("threads") & txt
Endif
If IsPressed (KEY_ALT) Then Return GetState("paths")
A_Version = FileGetVersion(A_Wdx, "FileVersion")
A_Copyright = FileGetVersion(A_Wdx, "LegalCopyright")
obj = Plugin("FileDateTime")
If ERROR = 0 Then
obj.FileName = A_Wdx
A_DateTime = StrFormat("%.0f", obj.GetValue(3))
Free(obj)
Else
A_DateTime = "Error " & ERROR
Endif
Return "Версия: " & A_Version & auCRLF & "Дата изменения: " & A_DateTime & auCRLF & "Авторские права: " & A_Copyright
EndFunc
|
А вот меню так просто сбросить не получится - там много всего лишнего завязано. В общем, как появится больше времени, вернусь к этому. |
|