Ballontipp bei Programmstart anzeigen an definierter Stelle

  • Hallo Gemeinde,

    ist es möglich, einen BallonTooltipp unmittelbar nach dem Start einer Gui, an einer bestimmten Stelle für 10 Sekunden anzeigen zu lassen?

    Beispielcode:

    Der Beispielcode zeigt eine Gui mit einer Listbox an, welche zwei Einträge hat.
    Ich möchte, dass wenn die Gui gestartet wird, der BallontoolTip direkt angezeigt wird und auf den zweiten Eintrag (hier: 1. Item) zeigt, für
    10 Sekunden.

    AutoIt
    ; ich habe es mit:
    
    ToolTip("Beispieltext", x, n, "INFO", 1, 1)
    Sleep(10000)
    ToolTip("")
    
    ; versucht. Leider sind die Koordinaten x und n aber immer auf den Desktop bezogen und nicht auf das Control, bzw. die Stelle
    wo ich den Tip gerne hätte. Gerade auch wenn die GUI an anderer Stelle erscheint.

    Einmal editiert, zuletzt von SOLVE-SMART (18. September 2024 um 16:52)

  • stumpf, aber funktioniert:

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • Hi hipfzwirgel , hi Schnuffel 👋 ,

    deine "stumpfe" Variante funktioniert wunderbar Schnuffel .
    Sie hat nur die kleine Einschränkung, dass während der 10 Sekunden die GUI nicht verwendbar ist.
    Also eine Interaktion mit dem Button (ich nehme an da kommen noch mehr dazu) nicht möglich ist, da ja das Skript durch das Sleep() blockiert ist.

    Daher habe ich mit deinen Werten aus WinGetPos() und ControlGetPos() eine Variante mit einem Timer gebastelt.
    Somit kann während der Anzeige auch noch die GUI "bedient" werden, falls dies gewünscht ist. Wenn nicht, dann bitte Variante 1 nutzen 😅 .

    Einen angenehmen Abend euch noch 🤝 .


    Viele Grüße
    Sven

  • Ich verwende die _GUIToolTip* Funktionen von AutoIt.
    Mit _GUIToolTip_SetDelayTime lässt sich die Anzeigedauer einstellen.

  • Hallo Zusammen,

    bitte entschuldigt die späte Rückmeldung und vielen lieben Dank für eure Denkanstöße und Mühen.

    Ich werde den Vorschlag von Schnuffel und Solve Smart morgen mal testen.

    @ water: das hatte ich auf Vorschlag von ChatGpt auch versucht aber leider nicht hinbekommen. I-wie wurde entweder der Ballontip nicht angezeigt oder an falscher Stelle. ;(

  • Ich poste demnächst ein Beispiel wie ich es einsetze :)

  • So, hier ein Beispiel mit _GUIToolTip:

  • Du wolltest den ToolTip ja auf dem ListItem haben:
    Du kannst die Position und Größe des Items mit _GuiCtrlListBox_GetItemRect abfragen.

    Ich hab mal ein Beispiel erstellt. Dabei werden auch mehrere ToolTips hintereinander angezeigt, ohne dass die GUI blockiert.
    Ich hab als alternative zu den Timern mal AdlibRegister genutzt.

  • Hi water , hi Kanashius 👋 ,

    beide eure Ansätze finde ich gut, wobei ich das Beispiel von Water doch besser finde. UDF eingebunden und "die richtigen Funktionen" genutzt, fertig.
    Wenn man die GUIToolTip.au3 nicht kennt, nutzen möchte etc., ist deine Variante Kanashius meiner Meinung nach eine gute Alternative.

    -- Alle Wege führen nach Rom --

    Angenehmen Abend euch allen noch.

    Viele Grüße
    Sven