Что нового

[Элементы GUI] ToolTip_UDF.au3 удаление подсказок

Pavel

Новичок
Сообщения
125
Репутация
3
Здравствуйте!
В продолжении темы [Элементы GUI] Как увеличить время отображения GuiCtrlSetTip?
Возникла задача по "галочке" стирать всплывающие подсказки. Однако, как с GuiCtrlSetTip'ом -
Код:
GUICtrlSetTip($mytip, '')

- ситуация не прокатывает. Как это сделать наиболее простым способом? Парюсь уже который час...
 

AZJIO

Меценат
Меценат
Сообщения
2,879
Репутация
1,194
Pavel
ситуация не прокатывает

Парился 2 секунды, всё работает

Код:
GUICreate('My Program', 250, 260)
$Button1=GUICtrlCreateButton('Start', 10, 10, 120, 22)
GUICtrlSetTip(-1, 'Подсказка')
$Label1=GUICtrlCreateLabel('StatusBar', 5, 260-20, 150, 17)
GUISetState ()
While 1
	$msg = GUIGetMsg()
	Switch $msg
		Case $Button1
			GUICtrlSetTip($Button1, '')
		Case -3
			 Exit
	EndSwitch
WEnd
 
Автор
P

Pavel

Новичок
Сообщения
125
Репутация
3
Видимо я неправильно выразился.
Разумеется, для GUICtrlSetTip "зануление" текста прокатывает. Но от неё пришлось отказаться, т.к. тайм-аут подсказки = 5 секунд и этого не изменить.
Вопрос про ToolTip_UDF.au3.
А именно, как там можно включать/отключать подсказки по желанию?
"Зануление текста" через _ToolTip_SetText не прокатывает. Вот в чем смысл.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Pavel,
Попробуйте так.
Код:
#include <GUIConstantsEx.au3>
#include <ToolTip_UDF.au3>
#include <EditConstants.au3>

Global $aBut[11] = [10], $iShowTime = Random(1, 20, 1), $iShowTimeOld

GUICreate('Test', 170, 440)
$nInput = GUICtrlCreateInput($iShowTime, 35, 10, 50, 20, $ES_READONLY)
GUICtrlSetState(-1, $GUI_DISABLE)
$nUpDown = GUICtrlCreateUpdown($nInput)
GUICtrlSetLimit(-1, 20, 1)
GUICtrlSetState(-1, $GUI_DISABLE)
For $i = 1 To $aBut[0]
	$aBut[$i] = GUICtrlCreateButton('Test ' & $i, 35, 40 + ($i - 1) * 40, 100, 30)
Next
$nCheckBox = GUICtrlCreateCheckbox('ToolTip', 95, 10, 60, 20)
GUISetState()

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $nUpDown
			$iShowTime = Int(GUICtrlRead($nInput))
			If $iShowTimeOld <> $iShowTime Then
				$iShowTimeOld = $iShowTime
				_ToolTip_SetShowTime($iShowTimeOld * 1000)
			EndIf
		Case $aBut[1] To $aBut[$aBut[0]]
			MsgBox(64, 'Info', 'Нажата кнопка "' & GUICtrlRead($nMsg) & '"')
		Case $nCheckBox
			If BitAND(GUICtrlRead($nCheckBox), $GUI_CHECKED) Then
				For $i = 1 To $aBut[0]
					_ToolTip_SetText($aBut[$i], 'Подсказка № ' & $i)
				Next
				$iShowTime = GUICtrlRead($nInput)
				If $iShowTimeOld <> $iShowTime Then
					$iShowTimeOld = $iShowTime
					_ToolTip_SetShowTime($iShowTimeOld * 1000)
				EndIf
				GUICtrlSetState($nInput, $GUI_ENABLE)
				GUICtrlSetState($nUpDown, $GUI_ENABLE)
			Else
				GUICtrlSetState($nInput, $GUI_DISABLE)
				GUICtrlSetState($nUpDown, $GUI_DISABLE)
				OnAutoitExit()
			EndIf
	EndSwitch
WEnd
 
Автор
P

Pavel

Новичок
Сообщения
125
Репутация
3
madmasles, пример работает.
Но не могли бы вы пояснить OnAutoitExit()?
 
Автор
P

Pavel

Новичок
Сообщения
125
Репутация
3
madmasles
Большое спасибо! Просто автор никак не прокомментировал её. Вот взгляд и блуждал не там, где нужно.
Выходит, он всё же продумал этот момент в своей UDF. :IL_AutoIt_1:
 
Верх