Script hängt bei Fensterbewegung

  • Hallo ,

    Ich Bräuchte Lösungsvorschläge von Euch :)

    Ich hab folgendes Problem :
    Wenn ich das Fenster bewegen möchte,hält mein Script bis Ich die Maus loslasse an .

    Kann man das irgenwie Lösen ?

    Hier mal mein Beispiel

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <ListViewConstants.au3>
    #include <WindowsConstants.au3>
    #include <GuiConstantsEx.au3>
    #include <GuiListView.au3>
    Opt("GUIOnEventMode", 1)
    #Region ### START Koda GUI section ### Form=
    Global $Form1 = GUICreate("Form1", 311, 135, 252, 141)
    GUISetOnEvent($GUI_EVENT_CLOSE, "Form1Close")
    GUISetOnEvent($GUI_EVENT_MINIMIZE, "Form1Minimize")
    GUISetOnEvent($GUI_EVENT_MAXIMIZE, "Form1Maximize")
    GUISetOnEvent($GUI_EVENT_RESTORE, "Form1Restore")
    Global $ListView1 = GUICtrlCreateListView("|||", 0, 0, 310, 90)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 50)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 50)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 2, 50)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 3, 50)
    Global $ListView1_0 = GUICtrlCreateListViewItem("Test|Test2", $ListView1)
    Global $ListView1_1 = GUICtrlCreateListViewItem("Strecke", $ListView1)
    GUICtrlSetOnEvent(-1, "ListView1Click")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    AdlibRegister("Update",100)
    Global $R

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

    While 1
    Sleep(100)
    WEnd

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

    Func Form1Close()
    Exit
    EndFunc

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

    Func Update()
    $R +=1
    _GUICtrlListView_SetItemText($ListView1,1,$R,1)
    EndFunc

    [/autoit]

    Ich wäre für jede Hilfe dankbar ^^


    /edit Um es zu Verdeutlichen In meinen Script rechnet er jede sekunde +1 so Wen ich nun zwischen der 7 und 9 Sekunde das fenster verschiebe rechnet er mit 7 weiter wo er eigendlich schon bei 9 wäre :)

    2 Mal editiert, zuletzt von Soulsbook (27. Oktober 2011 um 19:24)

  • Das stimmt aber in den anderen Windows Fenstern wird nach dem Loslassen der Maus das Fenster Aktuallisiert sprich ich möchte das wenigstens die berechnungen weiterlaufen ^^

  • Hi,

    so geht's ohne Probleme ...

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <ListViewConstants.au3>
    #include <WindowsConstants.au3>
    #include <GuiConstantsEx.au3>
    #include <GuiListView.au3>
    #include <Timers.au3>

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

    Global $ID_LISTVIEW
    Global $ID_LVITEM_1
    Global $ID_LVITEM_2

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

    Global $g_nTimer

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

    ;
    Exit (_Main ( ))
    ;

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

    Func _Main ( )

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

    Local $hwnd

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

    $hwnd = GUICreate("Form1", 311, 135, 252, 141)

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

    $ID_LISTVIEW = GUICtrlCreateListView("|||", 0, 0, 310, 90)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 50)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 50)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 2, 50)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 3, 50)

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

    $ID_LVITEM_1 = GUICtrlCreateListViewItem("Test|Test2", $ID_LISTVIEW)
    $ID_LVITEM_2 = GUICtrlCreateListViewItem("Strecke" , $ID_LISTVIEW)

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

    ; Timer setzen
    $g_nTimer = _Timer_SetTimer ($hwnd, 100, "Update")

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

    GUISetState(@SW_SHOW, $hwnd)

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

    While (TRUE)
    Switch (GUIGetMsg (FALSE))
    case $GUI_EVENT_CLOSE
    Form1Close($hwnd)
    ExitLoop
    EndSwitch
    WEnd

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

    EndFunc

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

    Func Form1Close($hWnd)
    ; Timer zerstören
    _Timer_KillTimer ($hWnd, $g_nTimer)
    ; Fenster zerstören
    GUIDelete ($hWnd)
    EndFunc

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

    Func Update($hWnd, $Msg, $iIDTimer, $dwTime)

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

    Local $sValue

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

    $sValue = _GUICtrlListView_GetItemText ($ID_LISTVIEW, 1, 1)

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

    _GUICtrlListView_SetItemText($ID_LISTVIEW,1, StringFormat ("%d", (Number ($sValue) + 1)) ,1)
    EndFunc

    [/autoit]


    Gruß
    Greenhorn