Bi0haZarD Posted September 7, 2005 Posted September 7, 2005 ok.. been looking on the net for the past hour or so looking here on the forums and other places with google. but I can't figure this out for the life of me..I need my listbox to autoscroll to the bottom of the listbox.pages i've found related on this:http://www.autoitscript.com/forum/index.php?showtopic=14399http://www.postfinder.com/post/24288574.htmlit seems i need to use $LB_GETCOUNT = 0x??????but this is exactly why i stopped learning C.. cause i kept getting lost in all this lol.
LxP Posted September 7, 2005 Posted September 7, 2005 (edited) Check out _GUICtrlListSetTopIndex() in the help file. All you would need to do is pass it the index of the last item in the list and that should do the trick.Edit: You obviously need to do this each time you write to the box. How about writing a short function that takes a text parameter, adds the text to the box and scrolls it? Edited September 7, 2005 by LxP
Bi0haZarD Posted September 7, 2005 Author Posted September 7, 2005 no results for "_GUICtrlListSetTopIndex" in the help file.. or anything that looks close to it... searched in google as well. and only 2 links there. neither are helpful. my Help file version is "v3.1.1"...
GaryFrost Posted September 7, 2005 Posted September 7, 2005 _GUICtrlListSetTopIndex is in the beta version this should work for you Func _GUICtrlListSetTopIndex($h_listbox, $i_index) Const $LB_SETTOPINDEX = 0x197 Return GUICtrlSendMsg($h_listbox, $LB_SETTOPINDEX, $i_index, 0) EndFunc ;==>_GUICtrlListSetTopIndex SciTE for AutoItDirections for Submitting Standard UDFs Don't argue with an idiot; people watching may not be able to tell the difference.
Bi0haZarD Posted September 7, 2005 Author Posted September 7, 2005 still don't quite get it. i was able to make it autoscroll down but only for 9 times... then it would stop scrolling and new data would keep going beneath it.... i think this was caused because the number of lines in the list was 9. Here is a small script that i'm gonna try to add the autoscroll to. then gonna add it to my main script. If you guys have time and i haven't found the solution could you please show me where i was making my mistakes. expandcollapse popup#region --- GuiBuilder code Start --- ; Script generated by AutoBuilder 0.5 Prototype #include <GuiConstants.au3> #Include <date.au3> ;If Not IsDeclared('WS_CLIPSIBLINGS') Then Global $WS_CLIPSIBLINGS = 0x04000000 GuiCreate("List AutoScroll Test", 251, 170,(@DesktopWidth-251)/2, (@DesktopHeight-177)/2 , $WS_OVERLAPPEDWINDOW + $WS_VISIBLE + $WS_CLIPSIBLINGS) $list = GuiCtrlCreateList("", 10, 10, 230, 136, $WS_VSCROLL) $button = GuiCtrlCreateButton("Run", 80, 140, 90, 20) $n = 0 do $n = $n +1 GUICtrlSetData($list,"ListText" & $n) until $n = 8 GuiSetState() While 1 $msg = GuiGetMsg() Select Case $msg = $GUI_EVENT_CLOSE ExitLoop Case $msg = $button GUICtrlSetData($list,_NowTime()) sleep(1000) ControlClick("List AutoScroll Test", "", "Button1", "left", "1") Case Else ;;; EndSelect WEnd Exit #endregion --- GuiBuilder generated code End ---
GaryFrost Posted September 7, 2005 Posted September 7, 2005 expandcollapse popup#region --- GuiBuilder code Start --- ; Script generated by AutoBuilder 0.5 Prototype #include <GuiConstants.au3> #Include <date.au3> ;If Not IsDeclared('WS_CLIPSIBLINGS') Then Global $WS_CLIPSIBLINGS = 0x04000000 GUICreate("List AutoScroll Test", 251, 170, (@DesktopWidth - 251) / 2, (@DesktopHeight - 177) / 2, $WS_OVERLAPPEDWINDOW + $WS_VISIBLE + $WS_CLIPSIBLINGS) $list = GUICtrlCreateList("", 10, 10, 230, 136, $WS_VSCROLL) $button = GUICtrlCreateButton("Run", 80, 140, 90, 20) $n = 0 Do $n = $n + 1 GUICtrlSetData($list, "ListText" & $n) Until $n = 8 GUISetState() While 1 $msg = GUIGetMsg() Select Case $msg = $GUI_EVENT_CLOSE ExitLoop Case $msg = $button GUICtrlSetData($list, _NowTime()) Sleep(1000) _GUICtrlListSetTopIndex($list, _GUICtrlListCount($list) - 1) ;~ ;~ ControlClick("List AutoScroll Test", "", "Button1", "left", "1") Case Else ;;; EndSelect WEnd Exit #endregion --- GuiBuilder generated code End --- Func _GUICtrlListCount($h_listbox) Const $LB_GETCOUNT = 0x18B Return GUICtrlSendMsg($h_listbox, $LB_GETCOUNT, 0, 0) EndFunc ;==>_GUICtrlListCount Func _GUICtrlListSetTopIndex($h_listbox, $i_index) Const $LB_SETTOPINDEX = 0x197 Return GUICtrlSendMsg($h_listbox, $LB_SETTOPINDEX, $i_index, 0) EndFunc ;==>_GUICtrlListSetTopIndex SciTE for AutoItDirections for Submitting Standard UDFs Don't argue with an idiot; people watching may not be able to tell the difference.
Bi0haZarD Posted September 7, 2005 Author Posted September 7, 2005 sweet worked like a charm many thanks
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now