Hallo, ich hab auch mal wieder eine Frage. Und zwar bastle ich an einer Trendanzeige für die ich einen horizontalen Scrollbalken benötigen würde. Die Frage ist nur wie man dem Scrollbalken sagt was sein 'horizontaler Extend' ist, also wo Anfang und Ende des Scrollbereiches ist.
Also wenn der Trend am Ende der Gui angelangt ist, dann soll der Trendbereich scrollbar sein.
Ich hoffe mit folgendem Beispiel versteht ihr mein Anliegen.
Spoiler anzeigen
#include <Array.au3>
#include <Date.au3>
#include <GUIConstantsEx.au3>
#include <StructureConstants.au3>
#include <WinAPI.au3>
#include <WindowsConstants.au3>
#Include <File.au3>
Opt("GUIOnEventMode", 1)
[/autoit] [autoit][/autoit] [autoit]Global $aWerte[1], $Run = 1
Global $title = 'Trend-Test'
Global $iWidth = 800, $iHeight = 500
Global $tRECT = DllStructCreate($tagRECT)
$aWerte[0] = _Now()
#Region Simulation
For $i = 1 To 790
_ArrayInsert($aWerte, UBound($aWerte), Random(300, 350))
Next
#Endregion Simulation
$gui = GUICreate("Trend-Simulation by funkey", $iWidth, $iHeight, -1, -1, BitOR($GUI_SS_DEFAULT_GUI ,$WS_HSCROLL)) ;funktioniert nicht so wie ich will
GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
$Trend = _GUITrendCreate($aWerte, 0, 0, $iWidth *2, $iHeight)
_GUITrendInitialize($aWerte, $Trend, $iHeight)
GUISetState()
[/autoit] [autoit][/autoit] [autoit]AdlibEnable("_Simulation", 500)
[/autoit] [autoit][/autoit] [autoit]While 1
Sleep(5000)
WEnd
Func _GUITrendCreate($aDaten, $iPosx, $iPosy, $iWidth, $iHeight, $Color = '0xFF0000')
Local $TrendID
$TrendID = GUICtrlCreateGraphic($iPosx, $iPosy, $iWidth, $iHeight);, $WS_HSCROLL) ;funktioniert nicht so wie ich will
GUICtrlSetBkColor($TrendID, 0xffffff)
GUICtrlSetGraphic($TrendID, $GUI_GR_COLOR, $Color)
Return $TrendID
EndFunc
Func _GUITrendInitialize($aDaten, $TrendID, $iHeight)
GUICtrlSetGraphic($TrendID, $GUI_GR_MOVE, 0, $iHeight - $aDaten[1])
For $i = 0 To UBound($aDaten) - 2
GUICtrlSetGraphic($TrendID, $GUI_GR_LINE, $i, $iHeight - $aDaten[$i+1])
GUICtrlSetGraphic($TrendID, $GUI_GR_MOVE, $i, $iHeight - $aDaten[$i+1])
Next
EndFunc
Func _GUITrendUpdate($aDaten, $TrendID, $iHeight)
GUICtrlSetGraphic($TrendID, $GUI_GR_LINE, UBound($aWerte) -1, $iHeight - $aWerte[UBound($aWerte)-1])
GUICtrlSetGraphic($TrendID, $GUI_GR_MOVE, UBound($aWerte) -1, $iHeight - $aWerte[UBound($aWerte)-1])
DllStructSetData($tRECT, 1, UBound($aWerte) -2)
DllStructSetData($tRECT, 2, 0)
DllStructSetData($tRECT, 3, UBound($aWerte) -1)
DllStructSetData($tRECT, 4, $iHeight)
_WinAPI_RedrawWindow($gui, $tRECT)
EndFunc
Func _Exit()
Local $Zeit = StringReplace(_Now(), ':', '_')
If Not FileExists(@ScriptDir & '\logfiles\') Then DirCreate(@ScriptDir & '\logfiles\')
_FileWriteFromArray(@ScriptDir & '\logfiles\Daten_'&$Zeit&'.log', $aWerte)
Exit
EndFunc
Func _Simulation()
_ArrayInsert($aWerte, UBound($aWerte), Random(300, 350))
_GUITrendUpdate($aWerte, $Trend, $iHeight)
EndFunc