Problem mit GUIScrollbars_Ex

  • Hier erstmal mein Code:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <GUIScrollbars_Ex.au3>
    #include <Array.au3>
    Opt("GUIOnEventMode", True)
    Global $hGUIEQItemInput[0], $hGUIEQItemSlider[0], $MainGui_Width = @DesktopWidth, $MainGui_Height = @DesktopHeight

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

    $hGUIEQ = GUICreate("EQTest", GUIx(105), GUIy(660))
    $hGUIEQContext = GUICtrlCreateContextMenu()
    $hGUIEQContextAdd = GUICtrlCreateMenuItem("Add Frequency", $hGUIEQContext)
    GUICtrlSetOnEvent(-1, "AddFreq")
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
    GUISetState()
    _GUIScrollBars_Generate($hGUIEQ, 0, GUIy(5))
    for $i = 0 to 10 step +1
    AddFreq()
    Next
    While 1
    ;ConsoleWrite(_GUIScrollBars_Locate_Ctrl($hGUIEQ, 0, 0)[1]&@CRLF)
    WEnd

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

    Func _Exit()
    Exit
    EndFunc

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

    Func AddFreq()
    _ArrayAdd($hGUIEQItemInput, GUICtrlCreateInput("0", 5, GUIx(5)+UBound($hGUIEQItemInput)*GUIy(50), GUIx(30), GUIy(40)))
    $ScrollHeight = GUIy(5+UBound($hGUIEQItemInput)*50)
    _GUIScrollBars_Generate($hGUIEQ, 0, $ScrollHeight)
    EndFunc

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

    Func GUIx($Number)
    return $MainGui_Width/1000*$Number
    EndFunc

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

    Func GUIy($Number)
    return $MainGui_Height/1000*$Number
    EndFunc

    [/autoit]


    Mein Problem:
    Wenn ich Einstellungen hinzufüge (Rechtsklick, [Add Frequency]) dann tauchen die wie gewünscht unten auf, und lassen sich scrollen sobald möglich. Wenn ich allerdings runterscrolle, und dann Einstellungen hinzufüge, erscheint beim hochscrollen ein freier Rand. Wenn ihr mich nicht ganz versteht, probiert es bitte einfach aus.
    Meine Frage:
    Wie behebe ich das Problem?

    [GELÖST]Ich habe mein Problem nun selber gelöst, indem ich die AddFreq() Funktion verändert habe:

    [autoit]

    Func AddFreq()
    _ArrayAdd($hGUIEQItemInput, GUICtrlCreateInput("0", 5, GUIx(5)+UBound($hGUIEQItemInput)*GUIy(50), GUIx(30), GUIy(40)))
    $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))
    Next
    EndFunc

    [/autoit]


    Da das ganze allerdings immernoch nicht soo wunderschön ist, nehme ich immernoch gerne Vorschläge an :)

    Spoiler anzeigen

    Überraschung!


    MfG Donkey

    2 Mal editiert, zuletzt von ProgrammingDonkey (5. März 2015 um 22:47)

    • Offizieller Beitrag

    Wo ist die GUIScrollbar_Ex.au3?