Hallo zusammen,
ich hab folgendes "Problem". In meinem Tool habe ich eine TreeView. Dort werden den Items Icons zugewiesen. Aktuell ist es so, dass alle Items dasselbe Icon haben.
Ich möchte jedoch, dass Items die den String "completed" enthalten ein anderes Icon erhalten, als Items die nicht diesen String enthalten.
Um genauer zu werden: Der TreeView zeigt mir alle Dateien aus einem vorgegebenen Ordner an. Damit man etwas mehr übersicht erhält, sollen alle Dateien die diesen String enthalten ein grünes Häckchen bekommen, alle Dateien ohne den String sollen ein rotes X bekommen.
Da wir hier hunderte Dateien in den Ordner haben ist es einfacher, die "completed"-Dateien mit dem grünen Haken zu versehen da diese dann schneller auffallen.
Optional: Kann man die TreeView sogar sortieren, dass Items mit Icon XYZ zuerst angezeigt werden und anschließend erst die Items mit den anderem Icon?
Hier mal mein Codeschnipsel womit der TreeView erstellt ist - der auskommentierte Bereich ist das, wo ich versucht habe den Items unterschiedliche Icons zuzuweisen - jedoch ohne Erfolg:
Func _GUICtrlTreeView_CreateDirectory($hTreeView, $sPath, $bFiles = False)
Local $hFileItem, $FolderColor = 0x0000FF, $Folder, $aCount[2] = [0, 0]
If Not StringInStr(FileGetAttrib($sPath), 'D') Then Return SetError(1, 0, 0)
$sPath = FileGetLongName($sPath)
Local $oFSO = ObjCreate('Scripting.FileSystemObject')
If @error Then Return SetError(2, 0, 0)
_GUICtrlTreeView_BeginUpdate($hTreeView)
_GUICtrlTreeView_DeleteAll(GUICtrlGetHandle($hTreeView))
Local $hTreeViewItem = GUICtrlCreateTreeViewItem($sPath, $hTreeView)
GUICtrlSetColor(-1, $FolderColor)
;~ $icon = StringReplace(_GUICtrlTreeView_GetTree($hTreeView), '\\', '\')
;~ $icon2 = StringInStr($icon, "_completed.txt")
;~ If $icon2 > 0 Then
;~ _GUICtrlTreeView_SetIcon($hTreeView, $hTreeViewItem, 'shell32.dll', 111) ;Icon für Datei
;~ Else
;~ _GUICtrlTreeView_SetIcon($hTreeView, $hTreeViewItem, 'shell32.dll', 110) ;Icon für Datei
;~ EndIf
_GUICtrlTreeView_SetIcon($hTreeView, $hTreeViewItem, 'shell32.dll', 111) ;Icon für Datei
$Folder = $oFSO.GetFolder($sPath)
_CreateDirectoryRecursive($hTreeView, $Folder, $hTreeViewItem, $bFiles, $aCount)
If $bFiles Then
For $Files In $Folder.Files
$hFileItem = GUICtrlCreateTreeViewItem($Files.Name, $hTreeViewItem)
$aCount[1] += 1
Next
EndIf
_GUICtrlTreeView_SetIcon($hTreeView, $hTreeViewItem, 'shell32.dll', 3, 2) ;Icon für Rootfolder
_GUICtrlTreeView_SetIcon($hTreeView, $hTreeViewItem, 'shell32.dll', 110, 4)
_GUICtrlTreeView_EndUpdate($hTreeView)
GUICtrlSetState($hTreeViewItem, $GUI_EXPAND)
$oFSO = ''
Return $aCount
EndFunc ;==>_GUICtrlTreeView_CreateDirectory
Alles anzeigen
Zeile 21 ist das, wo den Items das Icon zugewiesen wird... also sollte hier der Ansatz sein, die Abfrage zu stellen... jedoch komme ich hier nicht weiter
Kann mir wer helfen?
LG
Mirko