Rebonjour,
Est il possible de changer la couleur de la ligne sélectionnée dans un TListView ?
Je ne trouve rien de probant à ce sujet. L'affichage de la sélection semble se faire après le OnCustomDrawItem ?
Merci
A+
Charly
Rebonjour,
Est il possible de changer la couleur de la ligne sélectionnée dans un TListView ?
Je ne trouve rien de probant à ce sujet. L'affichage de la sélection semble se faire après le OnCustomDrawItem ?
Merci
A+
Charly
J'ai trouvé une solution : il faut utiliser SetSysColors mais attention cela impacte tout Windows et pas seulement le TlistView :
En quittant, il ne faut pas oublier de remettre les couleurs à leurs couleurs d'origine.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Const cElements = 2; Var aElements : Array [1..cElements] of Integer; aRgbValues: Array [1..cElements] of Integer; Begin aElements[1] := COLOR_HIGHLIGHT ; aRgbValues[1]:= ColorToRGB( Color3 ); aElements[2] := COLOR_HIGHLIGHTTEXT; aRgbValues[2]:= ColorToRGB( clBlack ); SetSysColors( cElements, aElements, aRgbValues ); End ;
et ce n'est pas terrible de toucher aux couleurs systèmes !
A+
Charly
Il me semble avoir déjà fait ce type de chose en D6.
Si j'ai compris, tu as essayé avec OwnerDraw à true et te chargeant du dessin dans l'événement OnCustomDrawItem ?
Bonjour Blonde,
non, je n'ai pas réussi avec CustomDrawItem ni CustonDrawSubIten. J'ai utilisé SetSysColors pour changer COLOR_HIGHLIGHT, mais ce n'est pas très malin !
A+
Charly
Comme j'ai vu que tu voulais également aligner le texte des items, je me dis que c'est peut-être le moment de dessiner toi-même les éléments dans la liste.
Je regarde dans l'après-midi pour te faire un exemple. J'ai encore un D6 sur mon poste.
Partager