PDA

Показать полную графическую версию : [решено] Как закрыть ToolTip?


Smokie_id11243755
05-09-2010, 13:03
А то висит и висит пока скрипт не завершится)

madmasles
05-09-2010, 13:17
Smokie_id11243755,
ToolTip('')
$timeout = TimerInit()
ToolTip('Test tooltip', 0, 0)
While 1
If TimerDiff($timeout) >= 3000 Then
ToolTip('')
ExitLoop
EndIf
Sleep(10)
WEnd
Sleep(1000)
MsgBox(0, '', 'Нет tooltip`a')

Smokie_id11243755
05-09-2010, 13:25
блин, мог бы и догадаться) спасибо

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

Creat0R
05-09-2010, 15:47
а можно какнить сделать чтобы tooltip отображался несколько секунд и исчезал но скрипт при этом не останавливался »
А почему скрипт должен останавливаться?

Smokie_id11243755
05-09-2010, 16:43
$timeout = TimerInit()
While 1
If TimerDiff($timeout) >= 3000 Then
ExitLoop



Скрипт же на 3 секунды приостанавливается при этом и продолжает действия только после закрытия тултипа, а мне бы хотелось видеть тултип секунд 30, но чтобы при этом скрипт продолжал свои действия.

И вообще показалось это можно было тупо так записать

ToolTip('Test tooltip', 0, 0)
Sleep(3000)
ToolTip('')
MsgBox(0, '', 'Нет tooltip`a')

разве есть разница?

madmasles
05-09-2010, 17:37
Smokie_id11243755,
Я ведь специально не через Sleep(), а через TimerInit() - TimerDiff() сделал. Я думал, что Вы догадаетесь вставить If TimerDiff($timeout) >= 30000 Then ToolTip('') в нужное место Вашего кода. Я же не знаю, что Вы за программу пишете и что она делает.

Smokie_id11243755
05-09-2010, 17:56
сорри
но для реализации таким способом как я понял обязательно нужен цикл... а как быть, если программа, в которую я хочу это вставить - не цикл?

Iska
05-09-2010, 19:02
Вызываете ToolTip, затем сразу AdlibRegister (http://www.autoitscript.com/autoit3/docs/functions/AdlibRegister.htm) с заданным временем показа всплывающей подсказки. В функции, указанной первым параметром в AdlibRegister(), убираете подсказку и отменяете новые вызовы функции посредством AdlibUnRegister (http://www.autoitscript.com/autoit3/docs/functions/AdlibUnRegister.htm).

Creat0R
05-09-2010, 22:24
_ToolTipEx("My Tooltip", Default (http://www.autoitscript.com/autoit3/docs/keywords.htm#Default), Default (http://www.autoitscript.com/autoit3/docs/keywords.htm#Default), "Tooltip", 1, 5, 3000)

Sleep (http://www.autoitscript.com/autoit3/docs/functions/Sleep.htm)(5000)

Func (http://www.autoitscript.com/autoit3/docs/keywords.htm#Func) _ToolTipEx($sText, $iX = Default (http://www.autoitscript.com/autoit3/docs/keywords.htm#Default), $iY = Default (http://www.autoitscript.com/autoit3/docs/keywords.htm#Default), $sTitle = Default (http://www.autoitscript.com/autoit3/docs/keywords.htm#Default), $iIcon = Default (http://www.autoitscript.com/autoit3/docs/keywords.htm#Default), $iOptions = Default (http://www.autoitscript.com/autoit3/docs/keywords.htm#Default), $iTimeOut = 0)
Local (http://www.autoitscript.com/autoit3/docs/keywords.htm#Local) $sFuncName = "_ToolTipEx"

If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) @NumParams (http://www.autoitscript.com/autoit3/docs/macros.htm#@numparams) = 0 Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
ToolTip (http://www.autoitscript.com/autoit3/docs/functions/ToolTip.htm)("")
AdlibUnRegister (http://www.autoitscript.com/autoit3/docs/functions/AdlibUnRegister.htm)($sFuncName)
Return (http://www.autoitscript.com/autoit3/docs/keywords.htm#Return)
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)

ToolTip (http://www.autoitscript.com/autoit3/docs/functions/ToolTip.htm)($sText, $iX, $iY, $sTitle, $iIcon, $iOptions)
AdlibRegister (http://www.autoitscript.com/autoit3/docs/functions/AdlibRegister.htm)($sFuncName, $iTimeOut)
EndFunc (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndFunc)

madmasles
06-09-2010, 07:39
Creat0R,
SciTE ругается: ERROR: _ToolTipEx() called with wrong number of args. и т.д., тем не менее функция работает и из SciTE, и скомпилированная.

Creat0R
06-09-2010, 15:15
SciTE ругается »
Поправил.

Yashied
06-09-2010, 15:56
Если я ничего не напутал, то в AutoIt используется всего один Timer для всех AdlibRegister(). Следовательно, если в программе используется еще функции AdlibRegister(), то отсчет времени может быть неправильным. Лучше в функции AdlibRegister() проверять TimerDiff().

madmasles
06-09-2010, 16:13
Smokie_id11243755,
Еще здесь посмотрите: ToolTip_UDF (http://www.autoitscript.com/forum/index.php?showtopic=72983)

Creat0R
06-09-2010, 18:39
если в программе используется еще функции AdlibRegister(), то отсчет времени может быть неправильным. Лучше в функции AdlibRegister() проверять TimerDiff(). »
Функция будет запущена через то время, которое указано во втором параметре «AdlibRegister», поэтому Timer тут не поможет. Если уже на то пошло, то лучше использовать _Timer_* (через callback):

#include (http://www.autoitscript.com/autoit3/docs/keywords.htm##include) <Timers.au3>

_ToolTipEx("My Tooltip", Default (http://www.autoitscript.com/autoit3/docs/keywords.htm#Default), Default (http://www.autoitscript.com/autoit3/docs/keywords.htm#Default), "Tooltip", 1, 5, 3000)

Sleep (http://www.autoitscript.com/autoit3/docs/functions/Sleep.htm)(5000)

Func (http://www.autoitscript.com/autoit3/docs/keywords.htm#Func) _ToolTipEx($sText, $iX = Default (http://www.autoitscript.com/autoit3/docs/keywords.htm#Default), $iY = Default (http://www.autoitscript.com/autoit3/docs/keywords.htm#Default), $sTitle = Default (http://www.autoitscript.com/autoit3/docs/keywords.htm#Default), $iIcon = Default (http://www.autoitscript.com/autoit3/docs/keywords.htm#Default), $iOptions = Default (http://www.autoitscript.com/autoit3/docs/keywords.htm#Default), $iTimeOut = 0)
ToolTip (http://www.autoitscript.com/autoit3/docs/functions/ToolTip.htm)($sText, $iX, $iY, $sTitle, $iIcon, $iOptions)

If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) $iTimeOut Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
_Timer_SetTimer (http://dundats.mvps.org/help/html/libfunctions/_timer_settimer.htm)(0, $iTimeOut, "_ToolTipEx_Callback")
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)
EndFunc (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndFunc)

Func (http://www.autoitscript.com/autoit3/docs/keywords.htm#Func) _ToolTipEx_Callback($hWnd, $Msg, $iIDTimer, $dwTime)
_Timer_KillTimer (http://dundats.mvps.org/help/html/libfunctions/_timer_killtimer.htm)($hWnd, $iIDTimer)
ToolTip (http://www.autoitscript.com/autoit3/docs/functions/ToolTip.htm)("")
EndFunc (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndFunc)




© OSzone.net 2001-2012