Erstmal mein Code:
Spoiler anzeigen
#include <GUIConstants.au3>
#include <GUIScrollbars_Ex.au3>
#include <Array.au3>
Opt("GUIOnEventMode", True)
Global $hGUIEQItemInput[0], $hGUIEQItemSlider[0], $MainGui_Width = @DesktopWidth, $MainGui_Height = @DesktopHeight
$hGUIEQ = GUICreate("EQTest", GUIx(105), GUIy(660))
$hGUIEQContext = GUICtrlCreateContextMenu()
$hGUIEQContextAdd = GUICtrlCreateMenuItem("Add Frequency", $hGUIEQContext)
GUICtrlSetOnEvent(-1, "EQAddFreq")
GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
GUISetState()
_GUIScrollBars_Generate($hGUIEQ, 0, GUIy(5))
for $i = 0 to 99 step +1
EQAddFreq()
Next
While 1
;ConsoleWrite(_GUIScrollBars_Locate_Ctrl($hGUIEQ, 0, 0)[1]&@CRLF)
WEnd
Func _Exit()
Exit
EndFunc
Func EQAddFreq()
_ArrayAdd($hGUIEQItemInput, GUICtrlCreateInput("0", GUIx(5), GUIy(5)+UBound($hGUIEQItemInput)*GUIy(50), GUIx(30), GUIy(40)))
_ArrayAdd($hGUIEQItemSlider, GUICtrlCreateSlider(GUIx(5+30), GUIy(5)+UBound($hGUIEQItemInput)*GUIy(50), GUIx(60), GUIy(40), $TBS_HORZ))
$ScrollHeight = GUIy(5+UBound($hGUIEQItemInput)*50)
_GUIScrollBars_Generate($hGUIEQ, 0, $ScrollHeight)
for $i = 0 to UBound($hGUIEQItemInput)-1 step +1
GUICtrlSetPos($hGUIEQItemInput[$i], GUIx(5), _GUIScrollBars_Locate_Ctrl($hGUIEQ, 0, 0)[1]+GUIy(5+$i*50))
GUICtrlSetPos($hGUIEQItemSlider[$i], GUIx(5+30+5), _GUIScrollBars_Locate_Ctrl($hGUIEQ, 0, 0)[1]+GUIy(5+$i*50))
Next
EndFunc
#cs
Func EQSortFreqs()
Local $aHelpList [UBound($hGUIEQItemInput)][2]
for $i = 0 to UBound($hGUIEQItemInput)-1 step +1
$aHelpList[$i] = $hGUIEQItemInput[$i]
EndFunc
#ce
Func GUIx($Number)
return $MainGui_Width/1000*$Number
EndFunc
Func GUIy($Number)
return $MainGui_Height/1000*$Number
EndFunc
Mein Problem: Wenn ich die 100 "Gruppen" erstelle, dann fangen diese an, mit zunehmender Zahl immer breiter zu werden, und erst am Ende haben sie dann die gewünschte Größe. (<- So war es am Anfang (siehe Bild1)) Und nun ist dieser Verlauf nicht mehr so deutlich sichtbar:
Spoiler anzeigen
#include <GUIConstants.au3>
#include <GUIScrollbars_Ex.au3>
#include <Array.au3>
Opt("GUIOnEventMode", True)
Global $hGUIEQItemInput[0], $hGUIEQItemSlider[0], $MainGui_Width = @DesktopWidth, $MainGui_Height = @DesktopHeight
$hGUIEQ = GUICreate("EQTest", GUIx(105), GUIy(660))
$hGUIEQContext = GUICtrlCreateContextMenu()
$hGUIEQContextAdd = GUICtrlCreateMenuItem("Add Frequency", $hGUIEQContext)
GUICtrlSetOnEvent(-1, "EQAddFreq")
GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
GUISetState()
_GUIScrollBars_Generate($hGUIEQ, 0, GUIy(5))
for $i = 0 to 99 step +1
EQAddFreq()
Next
While 1
;ConsoleWrite(_GUIScrollBars_Locate_Ctrl($hGUIEQ, 0, 0)[1]&@CRLF)
WEnd
Func _Exit()
Exit
EndFunc
Func EQAddFreq()
_ArrayAdd($hGUIEQItemInput, GUICtrlCreateInput("0", GUIx(5), GUIy(5)+UBound($hGUIEQItemInput)*GUIy(50), GUIx(30), GUIy(40)))
_ArrayAdd($hGUIEQItemSlider, GUICtrlCreateSlider(GUIx(5+30), GUIy(5)+UBound($hGUIEQItemInput)*GUIy(50), GUIx(60), GUIy(40), $TBS_HORZ))
$ScrollHeight = GUIy(5+UBound($hGUIEQItemInput)*50)
_GUIScrollBars_Generate($hGUIEQ, 0, $ScrollHeight)
for $i = 0 to UBound($hGUIEQItemInput)-1 step +1
GUICtrlSetPos($hGUIEQItemInput[$i], GUIx(5), _GUIScrollBars_Locate_Ctrl($hGUIEQ, 0, 0)[1]+GUIy(5+$i*50), GUIx(30), GUIy(40))
GUICtrlSetPos($hGUIEQItemSlider[$i], GUIx(5+30+5), _GUIScrollBars_Locate_Ctrl($hGUIEQ, 0, 0)[1]+GUIy(5+$i*50), GUIx(60), GUIy(40))
Next
EndFunc
#cs
Func EQSortFreqs()
Local $aHelpList [UBound($hGUIEQItemInput)][2]
for $i = 0 to UBound($hGUIEQItemInput)-1 step +1
$aHelpList[$i] = $hGUIEQItemInput[$i]
EndFunc
#ce
Func GUIx($Number)
return $MainGui_Width/1000*$Number
EndFunc
Func GUIy($Number)
return $MainGui_Height/1000*$Number
EndFunc
Allerdings immernoch vorhanden. (<- siehe Bild2)
Meine Frage ist: Warum passiert das? Wie behebe ich meinen Fehler?