dass wenn man einen Button drückt sich die Farbe des entsprechenden Listview eintrages erst dann ändert, wenn man im Anschluss nochmal den Eintrag im Listview anklickt.
Du bist wahrscheinlich der erste, der keine Änderung der Hintergrundfarbe vornimmt.
Hatte ich niemals bewußt allein geprüft, da das Färben des Hintergrundes im Vordergrund der UDF stand.
Stimmt, die Überprüfung, ob das Subitem neu gezeichnet werden muß berücksichtigte nicht, dass evtl. nur die Vordergrundfarbe geändert wird. Hab das jetzt angepaßt.
Tausche mal in der LV_Format_include.au3 die folgende Funktion aus, dann paßt es:
_GUICtrlListView_FormattingCell
Func _GUICtrlListView_FormattingCell($hWnd, $iItem, $iSubItem, $iBkCol=-1, $iCol=-1, $iSize=-1, $iWeight=-1, $sFont=-1)
Local $sumParam = 0
Local $iParam = _GUICtrlListView_GetItemParam($hWnd, $iItem)
Local $index = $oParamSearch.Item($iParam)
If $iBkCol = -1 Then
$iBkCol = $defBkColLV
$sumParam += 1
EndIf
If $iCol = -1 Then
$iCol = $defColLV
$sumParam += 1
EndIf
If $iSize = -1 Then
$iSize = $defSize
$sumParam += 1
EndIf
If $iWeight = -1 Then
$iWeight = $defWeight
$sumParam += 1
EndIf
If $sFont = -1 Then
$sFont = $defFont
$sumParam += 1
EndIf
$aIParam[$index][$iSubItem+1][0] = $iBkCol
$aIParam[$index][$iSubItem+1][1] = $iCol
$aIParam[$index][$iSubItem+1][2] = $iSize
$aIParam[$index][$iSubItem+1][3] = $iWeight
$aIParam[$index][$iSubItem+1][4] = $sFont
; if SubItem not registered in IParam OR all values by -1 (delete Sub from IParam) ==> switch Sub value in IParam
Local $mark = DllStructGetData($aIParam[$index][0][0], 2, $iSubItem+1)
If Not $mark Or $sumParam = 5 Then
DllStructSetData($aIParam[$index][0][0], 2, BitXOR($mark, 1), $iSubItem+1)
EndIf
;~ If DllStructGetData($aIParam[$index][0][0], 2, $iSubItem+1) <> $mark Then
If DllStructGetData($aIParam[$index][0][0], 2, $iSubItem+1) <> $mark Or $sumParam <> 5 Then
_GUICtrlListView_RedrawItems($hWnd, $iItem, $iItem)
EndIf
EndFunc ;==>_GUICtrlListView_FormattingCell