ListBoxen auslesen

  • Hallo ich brauche mal wieder Eure Hilfe.

    Mit unten stehenden Code lese ich die Listbox $cidList2 aus.

    Das sieht so aus:

    0: Camera/Field of View 0

    1: Camera/Image Igloo 0

    2: Camera/Look Around 0

    3: Camera/Match New Photo... 0

    4: Camera/Next 0

    5: Camera/Orbit 0

    6: Camera/Pan 0

    7: Camera/Parallel Projection 0

    8: Camera/Perspective 0

    9: Camera/Position Camera 0

    10: Camera/Previous 0

    ...

    439: Window/Show Tags 0

    In der zweiten Listbox $cidList3 unter "Assigned" stehen manchmal auch Werte drin, wenn man z.B. den Eintrag "Camera/Image Igloo" in der Listbox 2 anklickt, erscheint in der Listbox $cidList3 ein "I", bei "Camera/Orbit" würde ein "O" stehen, bei "Camera/Zoom Extents" steht "Ctrl+Shift+E" und "Shift+Z".

    Mein Lösungsansatz das ich einfach _GUICtrlListBox_GetText($hLB3, 0) mit Abfrage geht nicht, da erst immer ein Focus auf einem Wert in der zweiten Listbox stehen muss damit man dann den dazu passenden Wert in der dritten Listbox sieht.

    Ein einfache _GUICtrlListBox_GetText($hLB2, $n) reicht nicht aus um auch den dazu passenden Wert aus Listbox3 zu holen.

    Was kann man da machen?

  • Da du hier ein externes Programm ansteuerst ist die Aussage: Gar nichts.

    Das externe Programm wird die Daten auch erst laden, sobald der entsprechende Focus gesetzt wurde. Sprich du musst eben diesen simulieren um an diese Daten zu kommen.

  • Hallo,

    danke für die Antwort.

    Ich hatte evtl. an sowas gedacht, aber bei über 400 Einträge verliert man den Focus. Warum?

    Ich habe das mal mit 20 Einträgen getestet und das funktioniert, aber danach geht es nicht mehr, da rutscht die Maus aus der Listbox.

    0: Camera/Field of View: 0

    1: Camera/Image Igloo: I

    2: Camera/Look Around: 0

    3: Camera/Match New Photo...: 0

    4: Camera/Next: 0

    5: Camera/Orbit: O

    6: Camera/Pan: H

    7: Camera/Parallel Projection: 0

    8: Camera/Perspective: 0

    9: Camera/Position Camera: 0

    10: Camera/Previous: 0

    11: Camera/Standard Views /Back: 0

    12: Camera/Standard Views /Bottom: 0

    13: Camera/Standard Views /Front: 0

    14: Camera/Standard Views /Iso: 0

    15: Camera/Standard Views /Left: 0

    16: Camera/Standard Views /Right: 0

    17: Camera/Standard Views /Top: 0

    18: Camera/Two-Point Perspective: 0

    19: Camera/Walk: 0

    20: Camera/Zoom: 0

    ...

    Vielleicht gibt es doch noch eine Lösung!

    Danke schon einmal für Eure Hilfe.

  • Ich habe es jetzt so gelöst:

    Mit _GUICtrlListBox_SetCurSel bleibt der Focus in der Listbox.

    Nur das man fast eine 500ms warten muss bis er was findet ist nicht so gut.

    Vielleicht gibt es ja da was :/

  • Hi autoBert,

    danke für den Hinweis.

    Schaue ich mir an.

    Überlege mir evtl. aber das ohne Abfrage der Listbox $hLB3 zu machen.

    Das dauert doch recht lange.

    Code
    For $n = 0 To $iCnt2 - 1 
        $sMsg2 &= _GUICtrlListBox_GetText($hLB2, $n) & @CRLF
        _GUICtrlListBox_SetCurSel($hLB2, $n)
    Next
    
    ConsoleWrite($sMsg2 & @CRLF)