Problem mit SimpleSort

  • Spoiler anzeigen
    [autoit]


    If WinExists("Landscape Edit Settings") Then
    $list = ControlGetHandle("Landscape Edit Settings", "", 1492)
    $abstieg = _GUICtrlListView_GetColumnCount($list)
    MsgBox(0, _GUICtrlListView_GetItemText($list, 1, 0), "")
    ;~ If Not _GUICtrlListView_GetItemText($list, 1, 0) = "AnvilGrass01" Then
    _GUICtrlListView_SimpleSort($list, $abstieg, 0)
    ;~ EndIf
    EndIf

    [/autoit]


    Bei dem Code macht die If-Schleife Probleme. Die MsgBox sagt, an der Stelle in dem Listview wäre "jsdabngfjas"(Beispiel). Also auf keinen Fall die Bedingung für die Schleife. Solange ich die Schleife weg lasse, sortiert der Code mir alles kaputt. Also mit Schleife. Komischerweise tut sich dann aber nix. Die MsgBox sagt mir immer noch, dass Item wäre nicht "AnvilGrass01" aber sortiert wird trotzdem nicht.
    Kann mir jemand sagen, was ich falsch mache? Oder hat jemand spontan eine bessere Idee?
    Ich kann leider nicht abfragen, ob das Item an der Stelle "jsdabngfjas" heißt, es ist variabel.

    Einmal editiert, zuletzt von penta.phoenix (18. April 2009 um 10:46)

  • Danke, jetzt geht die Sortierung auch mit Abfrage.
    Allerdings werden die Items abgeschnitten. Aus "AnvilGrass01" wird z.B. "AnvilGra". Die If-Schleife greift dadurch natürlich auch nicht mehr.
    Es wird endlos sortiert und bei jedem Durchgang werden die letzten vier Zeichen abgeschnitten.
    Verändert habe ich nichts, außer die If-Schleife, so wie Oscar es geschrieben hat.

  • Das Prog ist das TES ConstructionSet für TES4: Oblivion.
    Mein komplettes Skript ist ca.1000 Zeilen lang und hat nichts mit dieser Abfrage zu tun.

    Aber vlt. das hier: Die gepostete Abfrage ist in der While 1-WEnd-Schleife meines Progs.
    Der Sinn war, die Listview zu ordnen, sobald sie angezeigt wird. Die ist nämlich kedesmal durcheinander.