Autoit GUI Elemente per Tabulator Taste wählen

  • Hallo zusammen.

    Gibt es in Autoit eine Möglichkeit die Reihenfolge mit der die einzelnen GUI Elemente beim nutzen der Tabulator Taste ausgewählt werden zu erzwingen? Beim Programmstart werden die Elemente noch alle wunderbar der Anordnung nach durchgewechselt, allerdings beinflusst eine meiner Combo Boxen den Inhalt einer weiteren Combo Box. Im Detail bedeutet das, dass die zweite Combo Box gelöscht und neu erstellt wird, damit sich der Inhalt an die Wahl aus der ersten Box anpasst. Dadurch scheint die zweite Box allerdings eine andere ID zu erhalten und wird beim betätigen der Tab Taste nicht mehr als zweites Element gewählt sondern als letztes. Die Frage ist nun also ob man der neu erstellten Combo Box wieder die alte ID zuweisen kann.

    Oder habt ihr Vorschläge wie man das Aktualisieren der zweiten Combo Box vielleicht auch ohne löschen und neu erstellen realisieren kann?

    Einmal editiert, zuletzt von misterspeed (12. November 2010 um 15:57)

  • Hallo misterspeed

    Im Detail bedeutet das, dass die zweite Combo Box gelöscht und neu erstellt wird, damit sich der Inhalt an die Wahl aus der ersten Box anpasst. Dadurch scheint die zweite Box allerdings eine andere ID zu erhalten und wird beim betätigen der Tab Taste nicht mehr als zweites Element gewählt sondern als letztes.

    Das scheint nicht nur so sondern ist es auch tatsächlich. Die Frage ist nun also ob man der neu erstellten Combo Box wieder die alte ID zuweisen kann.

    Zitat

    Die Frage ist nun also ob man der neu erstellten Combo Box wieder die alte ID zuweisen kann.

    mir nichts bekannt.

    Zitat

    Oder habt ihr Vorschläge wie man das Aktualisieren der zweiten Combo Box vielleicht auch ohne löschen und neu erstellen realisieren kann?

    Ja, mit GuiCtrlRead bzw. mit _GUICtrlComboBox_AddString

    mfg (Auto)Bert

  • Hmm ganz so einfach ist es leider nicht.
    Vielleicht zur Verdeutlichung wie der Inhalt der Combobox ermittelt wird:

    Combo1 enthält eine Dateiliste (_FileListToArray)...
    dabei handelt es sich um txt Dateien, welche ausgelesen werden nachdem man eine davon gewählt hat.

    Combo2 macht jede Zeile der gewählten Textdatei auswählbar, ist also durch _FileCountLines($txtdatei) bestimmt. Jenachdem wieviele Einträge die Datei hat sind mehr oder weniger Zeilen in Combo2 wählbar.
    Das Array welches die Daten für Combo2 stellt wird neu aufgebaut wenn man die Auswahl in Combo1 ändert.

    Nachdem in Combo2 die gewünschte Zeilennummer gewählt wurde erfolgt eine Ausgabe der Textzeile in einer Inputbox.

  • Lies die Zeilen der ausgewählten Textdatei in einen Array, wandle ihn mit

    [autoit]

    _ArrayToString

    [/autoit]

    in einen String und füge als Trennungszeichen "|" ein, dann nutze

    [autoit]

    GuiCtrlSetData()

    [/autoit]

    müsste eigentlich funktionieren, da GuiCtrlSetData, alles in der Combobox überschreibt, ansonsten verwende vorher

    [autoit]

    GuiCtrlSetData($Combobox2,"")

    [/autoit]

    Viel Spaß ;)