1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Forum
  3. AutoIt 3
  4. Tutorials

GUI_ONTOP

  • Oscar
  • 23. November 2009 um 22:08
1. offizieller Beitrag
  • Oscar
    Moderator
    Reaktionen
    8
    Beiträge
    7.381
    • 23. November 2009 um 22:08
    • Offizieller Beitrag
    • #1

    Mir ist gerade eine Besonderheit aufgefallen, mit der ich bereits bei einigen GUIs zu kämpfen hatte.

    Problem:
    Wenn ich den Befehl:

    [autoit]

    GUICtrlSetState($hButton, $GUI_ONTOP)

    [/autoit]


    benutzt hatte, dann wollte das GUI-Element (z.B. ein Button) oft nicht im Vordergrund erscheinen, ja er war sogar mitunter erst gar nicht sichtbar. Wenn man dann mit der Maus über die GUI fuhr, dann erschien plötzlich der Button.
    Dieses Verhalten konnte ich mir bisher nicht erklären, was dann dazu geführt hat, dass ich das anders gelöst hatte.
    Jetzt bin ich aber dahintergekommen, woran das liegt.
    Dazu hier ein einfaches Beispielscript:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    $hGui = GUICreate('Test', 400, 300)
    $hLabel = GUICtrlCreateLabel('Irgend ein Text', 0, 0, 400, 300)
    $hButton = GUICtrlCreateButton('Drück mich', 50, 100, 100, 25)

    [/autoit] [autoit][/autoit] [autoit]

    ; an dieser Stelle führt der folgende Befehl dazu, dass der Button hinter das Label gesetzt wird (verschwindet)
    GUICtrlSetState($hButton, $GUI_ONTOP)

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState()

    [/autoit] [autoit][/autoit] [autoit]

    ; aber hier wird der Button nach vorne geholt
    ;~ GUICtrlSetState($hButton, $GUI_ONTOP)

    [/autoit] [autoit][/autoit] [autoit]

    While True
    Switch GUIGetMsg()
    Case $hButton
    MsgBox(0, 'Test', 'Button')
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

    [/autoit]


    Die Lösung:
    Den Befehl GUICtrlSetState($hButton, $GUI_ONTOP) darf man erst benutzen, nachdem man das Fenster mit GUISetState() sichtbar gemacht hat.

    Vielleicht hatte ja auch einer von euch schon damit zu kämpfen...

    MfG. Oscar

    Forum: Arduino, Elektronik, AutoIt

    • Nächster offizieller Beitrag
  • Raupi
    Mjölnir
    Reaktionen
    1
    Beiträge
    4.093
    • 23. November 2009 um 22:14
    • Offizieller Beitrag
    • #2

    Das mit $GUI_ONTOP ist mir vorhin aufgefallen, als ich versucht habe in diesem Thread zu helfen [ offen ] Kann nicht auf Button klicken.
    Gut zu Wissen wie es funktioniert:thumbup:

    MfG Raupi

    Meine UDF´S:
    WM_Notify per FunktionUDF zum Anzeigen von Hilfetexten und einer Uhr in der Statusbar.Anzeige einer Uhr in der Menüzeile
    GIF,JPG und BMP Dateien aus Resource laden. Array aus Dll-Datei laden UDF zum schreiben und lesen von Array´s in(aus) ein(em) INI-File
    LUA Script zum erstellen eines Funktionsheaders.
    Tipp: Zum bearbeiten von DLL Dateien kann man den XN Resource Editor benutzen, ist besser als Reshacker

    Zitat von Sokrates

    "Wer weiß, dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß."

    Zitat von Werner Krauß

    Der Witz ist das Erdgeschoss des Humors, die Satire der Erste Stock, die Ironie der Zweite, der Sarkasmus das Mansardenstübchen.

    • Vorheriger offizieller Beitrag
  • Greek
    Reaktionen
    1
    Beiträge
    646
    • 27. November 2009 um 17:07
    • #3

    Cool danke,

    müsste man vieleicht mal in die Hilfe bei Remarks/Bemerkungen schreiben.

  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™