ToolTip, beenden mit Mausbewegung bzw. nach Zeitablauf

    • Offizieller Beitrag

    Wenn ich z.B. aus einer Anwendung in die Zwischenablage kopiere, gebe ich i.A. per ToolTip aus: '...wurde in die Zwischenablage kopiert'. Dahinter ein Sleep, damit der User auch Zeit zum Lesen hat.
    Da jeder unterschiedlich schnell liest, suchte ich nach einer möglichst einfachen Variante um den ToolTip vor Ablauf der Zeit zu killen.
    Daraus ist diese Funktion entstanden.
    Wird während der Tooltip-Anzeige die Maus um mehr als 10 Pixel horizontal oder vertikal bewegt, wird der Tooltip beendet.

    Die Parameter sind identisch, wie bei ToolTip. Hinzugekommen ist $TIME mit Voreinstellung von 3 s.

    Edit:
    Irgendwas findet man immer noch zum Ändern. ;)
    Hab jetzt als Standard (wenn $x oder $y =-1), dass der Tipp an der Mausposition gezeigt wird.

    _ToolTipMouseExit($TEXT, $TIME=-1, $x=-1, $y=-1, $TITLE='', $ICON=0, $OPT='')

    Spoiler anzeigen
    [autoit]

    ;----------------------------------------------------------------------------------------------------------------------
    ; Function _ToolTipMouseExit("text", [time [, x=-1 [, y=-1 [, "title" [, icon [, options]]]]]] )
    ;
    ; Description usual ToolTip, will be terminate with mouse move, latest after time
    ;
    ; Parameter same ase used by ToolTip
    ; if x Or y =-1 then ToolTip will be placed at mouse position
    ; optional $TIME default is 3000 ms
    ;
    ; Author BugFix ([email='bugfix@autoit.de'][/email])
    ;----------------------------------------------------------------------------------------------------------------------
    Func _ToolTipMouseExit($TEXT, $TIME=-1, $x=-1, $y=-1, $TITLE='', $ICON=0, $OPT='')
    If $TIME = -1 Then $TIME = 3000
    Local $start = TimerInit(), $pos0 = MouseGetPos()
    If ($x = -1) Or ($y = -1) Then
    ToolTip($TEXT, $pos0[0], $pos0[1], $TITLE, $ICON, $OPT)
    Else
    ToolTip($TEXT, $x, $y, $TITLE, $ICON, $OPT)
    EndIf
    Do
    Sleep(50)
    $pos = MouseGetPos()
    Until (TimerDiff($start) > $TIME) Or _
    (Abs($pos[0] - $pos0[0]) > 10 Or _
    Abs($pos[1] - $pos0[1]) > 10)
    ToolTip('')
    EndFunc ;_ToolTipMouseExit

    [/autoit]
  • Hi!

    Sehr schön. Einfacher geht es, glaube ich, auch nicht. Ich könnte mir einige Situationen vorstellen, in denen das hier sehr hilfreich werden könnte. Wobei ich dabei daran denke, die Abweichung so einzustellen, dass man in einer GUI den Tooltip auflöst, wenn man nicht mehr über der GUI ist.

    Obwohl in einer GUI der Sleep, auch wenn´s nur 50 Millisekunden sind, stören könnte. Oder? Auf jeden Fall sehr praktisch.

    Gruß Chris