GuiCtrlCreateCombo

  • Hi Leute,

    habe ein kleines Problem. Ich habe für meine Arbeit ein Skript geschrieben, welches unter anderem Servernamen aus
    einem Inifile einliest und diese in einer Combobox dargestellt. Ich habe ein vereinfachst Skript geschrieben, welches
    dem genannten Teil es Skripts entspricht, in welchem das Problem liegt.

    Zunächst kurz der Aufbau der Ini-Datei:

    Spoiler anzeigen
    Code
    [Server]
    =Server1
    =Server2
    =Server3
    =Server4
    
    
    usw.

    Diese Zeilen werden direkt in die Combobox eingelesen. Dummerweise sind es inzwischen mehr als
    30 Zeilen, so dass die verwendete Form der Combobox nicht mehr für die Darstellung ausreicht, da
    nur maximal 30 Einträge wiedergegeben werden.

    Gibt es da ne möglichkeit diese Begrenzung höher zu stellen?


    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    #include <ComboConstants.au3>
    #include <GUIConstantsEx.au3>

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

    local $serverliste, $var

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

    $var = IniReadSection("test.ini", "Server")

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

    For $s=1 To $var[0][0]
    $serverliste = $serverliste & $var[$s][1] & "|"
    Next
    StringTrimRight($serverliste, 1)

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

    $gui = GUICreate("Test", 240, 50)

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

    $combo_server = GUICtrlCreateCombo("", 10, 10, 220, 60, $CBS_DROPDOWNLIST)
    GUICtrlSetData(-1, $serverliste)
    GUICtrlSetFont(-1, 12, 600, 0, "Verdana")

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

    GUISetState()

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

    While 1

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

    $msg = GUIGetMsg()

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

    If $msg = $GUI_EVENT_CLOSE Then
    GUIDelete($Gui)
    Exit
    EndIf

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

    Sleep(50)

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

    WEnd

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


    Gruß

    Prajoss

    "Never touch a running System!"

  • Gibt es da ne möglichkeit diese Begrenzung höher zu stellen?

    Klar gibt es die, zum Beispiel mittels Scrollbar Stil. ;)

    [autoit]


    #include <WindowsConstants.au3> ; wird für ws_vscroll benötigt
    ;...
    $combo_server = GUICtrlCreateCombo("", 10, 10, 220, 170, BitOr($CBS_DROPDOWNLIST,$WS_VSCROLL,$CBS_NOINTEGRALHEIGHT))
    #cs
    $WS_VSCROLL --> Scrollbar
    $CBS_NOINTEGRALHEIGHT --> verhindert automatische Höhe durch Windows und nutzt die angegebene Höhe, hab das mal auf 170 gesetzt, was 8 Servern entspricht
    #ce

    [/autoit]
  • Coole Sache, Danke dir :)

    Vllt hät ich mein Hirn mehr anstrengen und probieren sollen, aber leider ist grad viel
    zu tun auf Arbeit :-/

    Gruß

    Prajoss

    "Never touch a running System!"