Frage zu Combobox und Werteauswahl

  • Hallo,

    habe eine Gui, auf der eine Combobox mit rund 100 Einträgen liegt.
    Einträge sehen ungefähr so aus
    A3P, ALA,N7Q,PLC etc.
    Problem:
    Wenn ich die Combo aufklappe werden ca. 30 Werte angezeigt.
    Das hat zur Folge, dass das Autocomplete nicht so funktioniert wie ich es gerne hätte.
    Wenn ich z.B. ein "U" über die Tastatur eingebe, steht oben an ersten Stelle ein String, der mit "P" anfängt.
    Das Problem scheint in der fixen Anzahl der aufgeklappten Werte zu liegen, weil eigentlich nicht mehr 30 Werte angezeigt werden sollen, sondern nur noch alle, die nach "U" kommen, also z.B. 10 Werte.
    Bei den oberen Werten, also solche die mit A beginnen ist das noch kein Problem.

    Wie kann man das benutzerfreundlicher gestalten?

    Vielen Dank im Voraus.

    PS: Hoffe das ist verständlich erklärt ?(

  • Mein Coding ist wie folgt (in Auszügen):

    [autoit]


    ;Comobox anlegen
    $hdlcboSys = GUICtrlCreateCombo("", 10, 30)

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

    ;Werte aus einer ini einlesen
    If Not FileExists($strIniDat) Then
    MsgBox(0, "Info", "ini-Datei existiert nicht.")
    Exit
    Else
    $aIni = IniReadSection($strIniDat, "MSSysName")
    For $i = 1 To $aIni[0][0]
    GUICtrlSetData($hdlcboSys, $aIni[$i][1])
    Next
    _GUICtrlComboBox_SetCurSel($hdlcboSys, -1)
    EndIf

    [/autoit]

    Zusätzlich noch einen Screenshot angehängt, der das Gesagte etwas deutlicher macht.

  • Hallo Bert,

    Du hast natürlich recht.
    Hatte dummerweise ein Komma vergessen :sleeping:

    Aber, das Ergebnis begeistert mich eigentlich auch nicht.
    Man sieht z.B. nicht welche Einträge alle verfügbar wären.
    Was ich eigentlich gerne hätte, sähe so aus.

    Klick auf Combobox -> Liste mit allen Einträgen klappt auf.
    Eintrag eines Buchstabens im ersten leeren Feld -> Selektion des ersten Eintrages, der dieser Ziffer entspricht.
    Eintrag eines weiteren Buchstabens -> Selektion des ersten Eintrages, der dieser Kombination entspricht usw.

    Ginge das?

    Gruß,
    Don

  • Hallo autoBert,

    Danke für den Tipp, das klappt im Prinzip.
    Hast Du noch eine Idee wie ich bei mehreren ComboBoxen auf einer Gui das Handle der gerade aktiven Combobox kriege?

    Gruß,
    Don

    • im MsgLoop-Modus: GuiGetMsg(1)
      Zitat von Hilfe

      Wird der "advanced"-Parameter verwendet, werden die Informationen in einem Array zurückgegeben:
      $array[0] = 0 oder Ereignis-ID oder Control-ID
      $array[1] = Der Fenster-Handle des Fensters, von dem das Ereignis gemeldet wird
      $array[2] = Der Control-Handle des Controls, von dem das Ereignis gemeldet wird (gegebenenfalls)
      $array[3] = Die aktuelle X-Position des Mauszeigers (relativ zum GUI-Fenster)
      $array[4] = Die aktuelle Y-Position des Mauszeigers (relativ zum GUI-Fenster)


      im On>Event.Modus:

      Zitat von Hilfe

      @GUI_CtrlId Identifier des zuletzt geklickten GUI Controls. Nur gültig in einer Event Funktion. Siehe GUICtrlSetOnEvent-Funktion.
      @GUI_CtrlHandle Handle des zuletzt geklickten GUI Controls. Nur gültig in einer Event Funktion. Siehe GUICtrlSetOnEvent-Funktion.

    mfg autoBert