GUI Probleme - Progress Bar-Optik, Exit mit esc, parrallele Abläufe

  • Hallo mal wieder

    ich versuche mich grad an ner GUI und habe da nun 2 bzw 3 Probleme:

    1. Die Progressbar hat segmentierte anzeige, auch wenn ich wie in der Hilfe beschrieben den stil umstelle

    2.
    Die GUI startet eine schleife. in dieser wird GUIGetMsg nochmal verwendet, damit das Programm geschlossen werden kann und damit man die schleife anhalten kann.
    Das funktioniert soweit auch, wenn ich auf das X klicke beendet sich das script problemlos, auch das abbrechen klappt.
    Aber im gegensatz zur abfrage der GUI selbst wird Esc nicht zum schließen des Programms akzeptiert - wie ist das möglich?

    aus 2 ergibt sich 3.
    kann man parralele abläufe in AutoIt realisieren? also das die GUIGetMsg-Schleife weiterläuft, obwohl die schleifen-funktion (ausgelöst durch einen button) durchlaufen wird?

  • 1. Liegt wahrscheinlich an deinem Windowsstyle
    2. Esc als Hotkey setzen und dann die Exit funktion aufrufen

  • windowsstyle? die hilfe zeigt dazu nichts, was heißt das? hat das mit klassischer/XP-Optik zu tun?

  • Ja, weil jeglich progessbar funktionen keine Veränderung bringen, wenn nicht der Standart Windowsstyle eingestellt ist.

  • Hi,

    @Daniel W.: Was meinst Du genau mit dem Standard-Windowsstyle? Meinst Du $GUI_SS_DEFAULT_GUI, der ist aber nicht Vorraussetzung für eine smoothe Progressbar.

    @AutoME39: Zu Deinen Fragen:
    1. Zeig mal Deinen Source-Code, bzw. schau Dir meinen untenstehenden an.
    2. Die Option GUICloseOnESC muss auf 1 gesetzt sein und in der GUI-Schleife muss auf $GUI_EVENT_CLOSE abgefragt werden, dann brauchst Du keine eigene Exit-Funktion mittels Hotkey definieren.
    3. Es sind maximal zwei "Pseudo-Threats" möglich. Siehe Hilfe unter AdlibEnable.

    In diesem Beispiel ist noch einmal alles vorhanden:

    Spoiler anzeigen
    [autoit]

    Opt("MustDeclareVars", 1)
    Opt("GUICloseOnESC", 1)

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

    Global $i_adlib = 0
    Local $h_gui = -1, $h_progress = -1, $h_runbt = -1
    $h_gui = GUICreate("Progressbar GUI", 320, 240, -1, -1, $WS_POPUPWINDOW)
    $h_progress = GUICtrlCreateProgress(10, 10, 300, 20, $PBS_SMOOTH)
    $h_runbt = GUICtrlCreateButton("&Run", 10, 40, 50, 20)
    GUISetState()

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

    AdlibEnable("ParallelFunc", 5000)

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

    While 1
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    GUIDelete()
    AdlibDisable()
    Exit
    Case $h_runbt
    For $i = 1 To 100
    GUICtrlSetData($h_progress, $i)
    Sleep(20)
    Next
    EndSwitch
    WEnd

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

    Func ParallelFunc()
    $i_adlib += 1
    TrayTip("I am a second 'threat'!", "Executed " & $i_adlib & " times...", 1)
    EndFunc

    [/autoit]