ersten Eintrag in Liste wählen

  • Hallo an Alle,

    ich habe ein Beispiel erstellt wo Namen in eine Liste übergeben werden (variabel). Nun ist es so, dass diese Name automatisch alphabetisch sortiert werden...Ich möchte das bei Ausführen immer der erste Eintrag selektiert ist. Ich habe nun schon einige Function ausprobiert, komme aber nicht so recht weiter. Kann mir bitte jemadn helfen?

    Spoiler anzeigen
    [autoit]

    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GUIListBox.au3>
    #include <WindowsConstants.au3>
    #include <Array.au3>

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

    $Form1 = GUICreate("Form1", 276, 118, 192, 124)
    $List1 = GUICtrlCreateList("", 8, 8, 121, 97)
    Local $Array_Name[6] = ["","Klaus","Steffen","Ute","Otto","Paula"]
    $Array_Name[0] = UBound($Array_Name)

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

    For $i = 1 to $Array_Name[0] - 1
    ;~ GUICtrlSetData($List1, $Array_Name[$i])
    _GUICtrlListBox_AddString($List1,$Array_Name[$i])
    Next
    ;~ MsgBox(0,"",_GUICtrlListBox_GetCount($List1))
    ;~ _GUICtrlListBox_ClickItem($List1,"1")
    ;~ GUICtrlSetData(-1,"1","1") --> anstatt der "1" brauche ich den Namen der alphabetisch als erstes kommt.
    $Input1 = GUICtrlCreateInput("", 144, 8, 121, 21)
    GUICtrlSetState(-1, $GUI_DISABLE)
    GuiCtrlSetData($Input1,GUICtrlRead($List1))
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $List1
    GuiCtrlSetData($Input1,GUICtrlRead($List1))
    EndSwitch
    WEnd

    [/autoit]

    Vielen Dank und viele Grüße,
    TOYY1

    Einmal editiert, zuletzt von TOYY1 (22. September 2011 um 11:20)

  • [autoit]

    _GUICtrlListBox_ClickItem($List1,$Array_Name[1])

    [/autoit]

    am Ende anfügen ggf. noch auf Inhalt prüfen also ob der erste Eintrag vorhanden ist bzw.

    [autoit]

    $Array_Name[0] > 0

    [/autoit]

    ist

    [autoit]

    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GUIListBox.au3>
    #include <WindowsConstants.au3>
    #include <Array.au3>

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

    $Form1 = GUICreate("Form1", 276, 118, 192, 124)
    $List1 = GUICtrlCreateList("", 8, 8, 121, 97)
    Local $Array_Name[6] = ["","Klaus","Steffen","Ute","Otto","Paula"]
    $Array_Name[0] = UBound($Array_Name)

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

    For $i = 1 to $Array_Name[0] - 1
    ;~ GUICtrlSetData($List1, $Array_Name[$i])
    _GUICtrlListBox_AddString($List1,$Array_Name[$i])
    Next
    ;~ MsgBox(0,"",_GUICtrlListBox_GetCount($List1))
    ;~ _GUICtrlListBox_ClickItem($List1,"1")
    ;~ GUICtrlSetData(-1,"1","1") --> anstatt der "1" brauche ich den Namen der alphabetisch als erstes kommt.
    $Input1 = GUICtrlCreateInput("", 144, 8, 121, 21)
    GUICtrlSetState(-1, $GUI_DISABLE)
    GuiCtrlSetData($Input1,GUICtrlRead($List1))
    GUISetState(@SW_SHOW)

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

    If $Array_Name[0] > 0 Then _GUICtrlListBox_ClickItem($List1,$Array_Name[1])

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $List1
    GuiCtrlSetData($Input1,GUICtrlRead($List1))
    EndSwitch
    WEnd

    [/autoit]

    Gruß Dietmar

    Achtung Anfänger! :whistling:

    Betrachten des Quellcodes auf eigene Gefahr, bei Übelkeit,Erbrechen,Kopfschmerzen übernehme ich keine Haftung. 8o

  • Ach ja sortieren wolltest Du ja auch noch, dann ist
    _arraysort dein Freund

    [autoit]

    Local $Array_Name[6] = ["","Klaus","Steffen","Ute","Otto","Paula"]
    _ArraySort($Array_Name)
    $Array_Name[0] = UBound($Array_Name)

    [/autoit]

    Achtung Anfänger! :whistling:

    Betrachten des Quellcodes auf eigene Gefahr, bei Übelkeit,Erbrechen,Kopfschmerzen übernehme ich keine Haftung. 8o

  • Spoiler anzeigen
    [autoit]

    #region - Timestamp
    ;2011-09-22 10:49:47
    #endregion - Timestamp

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

    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GUIListBox.au3>
    #include <WindowsConstants.au3>
    #include <Array.au3>

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

    $Form1 = GUICreate("Form1", 276, 118, 192, 124)
    $List1 = _GUICtrlListBox_Create($Form1, "", 8, 8, 121, 97)
    Local $Array_Name[6] = ["", "Klaus", "Steffen", "Ute", "Otto", "Paula"]
    $Array_Name[0] = UBound($Array_Name)

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

    _GUICtrlListBox_BeginUpdate($List1)
    For $i = 1 To $Array_Name[0] - 1
    _GUICtrlListBox_AddString($List1, $Array_Name[$i])
    Next

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

    _GUICtrlListBox_EndUpdate($List1)
    _GUICtrlListBox_SetCurSel($List1, 0)

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

    $Input1 = GUICtrlCreateInput("", 144, 8, 121, 21)
    GUICtrlSetState(-1, $GUI_DISABLE)
    GUISetState(@SW_SHOW)

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

    While 1
    GUICtrlSetData($Input1, _GUICtrlListBox_GetText($List1, _GUICtrlListBox_GetCurSel($List1)))
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $List1
    GUICtrlSetData($Input1, GUICtrlRead($List1))
    EndSwitch
    WEnd

    [/autoit]
  • Hallo Dietmas und i2c vielen Dank das war genau das was ich gesucht habe.
    DANKE und einen schönen Tag :).

    Viele Grüße,
    TOYY1

  • nur der Vollstänndigkeit halber das ganze funktioniert auch mit GuiCtrlSetData und _ArraySort:

    Spoiler anzeigen
    [autoit]

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

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

    $Form1 = GUICreate("Form1", 276, 118, 192, 124)
    $List1 = GUICtrlCreateList("", 8, 8, 121, 97)
    Local $Array_Name[6] = ["","Klaus","Steffen","Ute","Otto","Paula"]
    $Array_Name[0] = UBound($Array_Name)
    _ArraySort($Array_Name,0,1) ;sortiert ab Index 1 bis Ende
    For $i = 1 to $Array_Name[0] - 1
    GuiCtrlSetData($List1,$Array_Name[$i])
    Next
    GUICtrlSetData(-1,$Array_Name[1],$Array_Name[1]) ;Element mit Index 1 als Default setzen
    $Input1 = GUICtrlCreateInput("", 144, 8, 121, 21)
    GUICtrlSetState(-1, $GUI_DISABLE)
    GuiCtrlSetData($Input1,GUICtrlRead($List1))
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $List1
    GuiCtrlSetData($Input1,GUICtrlRead($List1))
    EndSwitch
    WEnd

    [/autoit]

    mfg autoBert