GuiListView zeigt ScrollBar erst nach reinklicken und scrollen an

  • Hallo,

    ich habe in meinem Code irgendwo einen kleine Fehler.
    Das Script soll eine Art "Filmbibliothek werden". Dazu sollte man das ListView nach unten scrollen können.
    Leider sehe ich keinen vertikalen Scrollbalken. Dazu muss ich erst in eines meiner Zeilen des Listview reinklicken und dann mit den Pfeiltasten navigieren. Dann wird der Scrollbalken auf der rechten Seite eingeblendet.
    Das muss doch auch gleich nach Start der GUI möglich sein ?

    Grüße Tim

    Script:

    • Offizieller Beitrag

    Du mußt das Listview erzeugen bevor du die GUI auf SHOW setzt. Andere Variante wäre, nach dem Erstellen des LV ein Neuzeichnen zu erzwingen (_WinAPI_RedrawWindow).
    Dein GUICtrlCreateListView("", 2, 2, 796, 300) ist beim besten Willen noch kein LV, das entsteht erst duch das Hinzufügen der Spalten (warum erstellst du diese nicht sofort?).

  • Danke BugFix!
    Ich füge die Spalten mit _GUICtrlListView_AddColumn hinzu, weil ich deren Breite dann gleich mit angeben kann.
    Versucht habe ich nun mit _WinAPI_RedrawWindow das Fenster neu zu zeichen, was ebenfalls nicht funktioniert wie das GUISetState(@SW_SHOW) nach dem Listview_erzeugen() auszuführen.

    Hier der letzte Versuch:

    • Offizieller Beitrag

    _GUICtrlListView_AddColumn hinzu, weil ich deren Breite dann gleich mit angeben kann.

    Was ist das für eine Logik?
    Das erledigt man doch beim Erstellen mit:

    AutoIt
    $hLV = GuiCtrlCreateListView('Spalte_1|Spalte_2', 5, 50, 495, 500)
    _GUICtrlListView_SetColumnWidth($hLV, 0, 240)
    _GUICtrlListView_SetColumnWidth($hLV, 1, $LVSCW_AUTOSIZE_USEHEADER)  ; Restbreite
    • Offizieller Beitrag

    Also ich kann deinen Fehler nicht erkennen. Reduziere dein Skript mal soweit, dass nur noch das Listview mit dem Verhalten übrigbleibt. Lagere erst mal nicht in eine Funktion aus, ich denke dabei entsteht das Problem. Allerdings hat mir bisher _WinAPI_RedrawWindow($hLV) jedes Listview ordentlich neu gezeichnet.
    Mit meinem Minimalskript kann ich deinen Fehler nicht abbilden.

    Spoiler anzeigen
  • Danke das du dir mein Problem angenommen hast.
    Ich habe jetzt einmal alles raus geschmissen was nicht benötigt wird.

    So sieht es aus:


    Nun habe ich zudem noch ein einfaches Beispiel gemacht was du auch testen können solltest (es werden keine eiteren Dateien benötigt):


    So sieht es nach dem Starten aus:

    Spoiler anzeigen
    • Offizieller Beitrag

    Mangels Bildern kann ich mit deinem Code wenig anfangen. Du solltest versuchen, ein auf jedem PC lauffähiges Musterskript zu erstellen, das deinen Fehler beinhaltet.
    Meiner Meinung nach verursachen die Images das Verhalten.
    Übrigens brauchst du die Images nicht zählen. Beim Hinzufügen zur Imagelist wird der Index für dieses Image zurückgegeben (Hilfe lesen hilft).

  • Mangels Bildern kann ich mit deinem Code wenig anfangen. Du solltest versuchen, ein auf jedem PC lauffähiges Musterskript zu erstellen, das deinen Fehler beinhaltet.

    Das habe ich in meinem Post über dir gemacht :) Ich habe zudem noch ein Bild eingefügt wie es bei mir nach dem Ausführen aussieht.

    Hier noch einmal das Script was du auch testen können solltest:

    • Offizieller Beitrag

    So, ich hab den Fehler gefunden.
    Die Imagelist muss dem Listview zugeordnet werden bevor Item hinzugefügt werden: