Hi,
ich lasse eine Lisview über eine Funktion immer zum Ende Scrollen, nur bei mir geht die Schiebeleiste immer hoch und runter anstatt unten zu bleiben.
Hoffentlich könnt ihr mir helfen
Spoiler anzeigen
#include <WindowsConstants.au3>
#include <GUIListView.au3>
$hGui_Chat = GUICreate("Chat", 314, 268, -1, -1)
$cChat_Send = GUICtrlCreateButton("Senden", 245, 240, 64, 20)
$cChat_List = GUICtrlCreateListView("", 8, 8, 297, 227, BitOR($LVS_NOCOLUMNHEADER, $LVS_REPORT, $WS_HSCROLL))
$cChat_Input = GUICtrlCreateInput("", 8, 240, 233, 21)
_GUICtrlListView_AddColumn($cChat_List, "", 200)
For $x = 0 To 13
GUICtrlCreateListViewItem(Random(), $cChat_List)
Next
AdlibRegister("ScrollLV")
GUISetState(@SW_SHOW)
While 1
$iMsg = GUIGetMsg()
Switch $iMsg
Case -3
Exit
Case $cChat_Send
;~ $sData = GetLongInf()
$sData = GUICtrlRead($cChat_Input)
If $sData = "" Then ContinueLoop
GUICtrlSetData($cChat_Input, "")
$aArray = StringTrimAfter($sData, 25)
If IsArray($aArray) Then
For $x = 1 To $aArray[0] ;-1
GUICtrlCreateListViewItem($aArray[$x], $cChat_List)
Next
EndIf
EndSwitch
WEnd
Func ScrollLV()
$aLV = _GUICtrlListView_GetItemRect($cChat_List, 0)
If UBound($aLV) = 4 Then _GUICtrlListView_Scroll($cChat_List, 0, _GUICtrlListView_GetItemCount($cChat_List) * $aLV[3] - $aLV[1])
EndFunc ;==>ScrollLV
Func StringTrimAfter($sString, $iCount)
Local $iSplit = 0
$iCount = Int($iCount)
If $iCount < 0 Then Return -1
If $iCount >= StringLen($sString) Then
Local $aArray[2]
$aArray[0] = 1
$aArray[1] = $sString
Return $aArray
EndIf
$iSplit = Int(StringLen($sString) / $iCount)
Dim $aArray[$iSplit] = [0]
For $x = 1 To $iSplit - 1
$aArray[$x] = StringLeft($sString, $iCount)
$sString = StringTrimLeft($sString, $iCount)
$aArray[0] += 1
Next
Return $aArray
EndFunc ;==>StringTrimAfter