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:
AutoIt
#cs ----------------------------------------------------------------------------
AutoIt Version: 3.3.8.1
Author: Tim E.
Script Function:
BloodMoon
#ce ----------------------------------------------------------------------------
; Script Start - Add your code below here
#include <GUIConstantsEx.au3>
#include <GuiImageList.au3>
#include <GuiListView.au3>
#include <MsgBoxConstants.au3>
#include "list_stuktur.au3"
#include <Array.au3>
Global $hImage, $idListview ;Wird für Listview gebraucht
Global $ini = "config.ini" ;Name der Ini Datei
Global $pfad ;Pfad zum Bibliotheks Ordner
GUICreate("ListView Set Image List", 800, 620)
$idListview = GUICtrlCreateListView("", 2, 2, 796, 300)
GUISetState(@SW_SHOW)
Ini_einlesen() ;Pfad aus Ini Lesen
Global $array_dateien = _ordner_rekursiv($pfad, 1,True,False,"bmp|mkv|avi|mp4") ;Alle Dateien auflisten lassen
_ArrayDisplay($array_dateien) ;Zeig es
ListView_erzeugen()
while 1
if GUIGetMsg() = $GUI_EVENT_CLOSE then exit
WEnd
Func Ini_einlesen()
If FileExists($ini) Then
;Nothing
Else
IniWrite($ini,"Filmbibliothek","Pfad","C:\Filmbibliothek") ;Ini erstellen
EndIf
$Pfad = IniRead($ini,"Filmbibliothek","Pfad","") ;Ini Lesen
If $pfad == "" then MsgBox(16,"Fehler!","Ein fehler beim Lesen der config.ini ist aufgetreten.") ;Fehler ausgeben wenn kein Pfad angegeben
If FileExists($pfad) == 0 then MsgBox(16,"Fehler!","Bitte Pfadangeben in config.ini anpassen.") ;Fehler ausgeben wenn Pfad nicht existiert
EndFunc
Func ListView_erzeugen() ;==>Listview erzeugen
; Add columns
_GUICtrlListView_AddColumn($idListview, "Cover", 105)
_GUICtrlListView_AddColumn($idListview, "Titel", 350)
_GUICtrlListView_AddColumn($idListview, "Details", 270)
; Load images
$hImage = _GUIImageList_Create()
_GUIImageList_SetIconSize($hImage, 100, 150)
Global $anzahl_zeile = 0
For $anzahl_array = 1 to UBound($array_dateien)-1 step 1
;Msgbox(0,"",$array_dateien[$anzahl_array][1])
If FileExists($array_dateien[$anzahl_array][0]&"#cover.bmp") AND ($array_dateien[$anzahl_array][0] <> $array_dateien[$anzahl_array + 1][0]) Then ;Überprüfen ob ein Cover vorhanden ist und ein Film dazu vorhanden
$filmvorhanden = 0 ;Kein Film vorhanden
;MsgBox(0,"Es existiert kein Film","")
Else
$filmvorhanden = 1 ;Film vorhanden
EndIf
If FileExists($array_dateien[$anzahl_array][0]&"#cover.bmp") then ;Überprüfen ob in dem Ordner ein Cover vorhanden ist
_GUIImageList_AddBitmap($hImage, $array_dateien[$anzahl_array][0]&"#cover.bmp") ;Bild hinzufügen
IF $filmvorhanden == 1 then $anzahl_array = $anzahl_array + 1 ;Nur wenn Film vorhanden zähle Bild eingefügt zähle eine Zeile weiter zum Film
Else
_GUIImageList_AddBitmap($hImage, "cover_fehlt.bmp") ;Wenn nicht, das fehlen des Covers als Bild wählen
EndIf
If $filmvorhanden = 0 Then ;Kein Film vorhanden
_GUICtrlListView_AddItem($idListview, "", $anzahl_zeile) ;Leerer Text für "Cover"
_GUICtrlListView_AddSubItem($idListview,$anzahl_zeile,"Kein Film vorhanden !",1,1) ;Film Titel
Else ;Film vorhanden
_GUICtrlListView_AddItem($idListview, "", $anzahl_zeile) ;Leerer Text für "Cover"
$filmtitel = StringSplit($array_dateien[$anzahl_array][1],".",2) ;Filmtitel von Dateityp abtrennen
$typ = $filmtitel[1]
_GUICtrlListView_AddSubItem($idListview,$anzahl_zeile,$filmtitel[0],1,1) ;Film Titel
$dateigrose = Round(FileGetsize($array_dateien[$anzahl_array][0]&$array_dateien[$anzahl_array][1])/1048576,2)
_GUICtrlListView_AddSubItem($idListview,$anzahl_zeile,"Dateityp: "&$typ&@CRLF&"Dateigröße: "&$dateigrose&"MB",2,1) ;Film Titel
endif
$anzahl_zeile = $anzahl_zeile + 1 ;Am Ende die geschriebene Zeile um eins erhöhen
Next
;Weist die Bilderliste dem Listview zu
Local $hPrevImageList = _GUICtrlListView_SetImageList($idListview, $hImage, 1)
EndFunc ;==>Listview erzeugen
Alles anzeigen