Changement de couleur des lignes sélectionnées par programme dans un TListView [Résolu]

Signaler
Messages postés
33
Date d'inscription
lundi 19 avril 2004
Statut
Membre
Dernière intervention
21 janvier 2020
-
Messages postés
3793
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
-
Bonjour,
Je souhaite que lorsque je sélectionne par programme plusieurs lignes d'un TListView, ces lignes soient colorées comme lorsqu'il s'agit d'une sélection manuelle.

Lorsque je sélectionne par programme toutes les lignes, pas de changement d'affichage, par contre si ensuite j'en déselectionne une par ctl + click la couleur apparait sur les autres lignes.

J'utilise Form1.refresh après la sélection par programme, j'ai aussi testé ceci trouvé sur le site, (proposé par Cincap)

procedure TForm1.LstOpenFlyersCustomDrawItem(Sender: TCustomListView;
Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
with Sender as TListView do begin
with Canvas do begin
if Item.Selected then begin
Brush.Color := rgb(220,220,255);
Pen.Style := psDot;
Pen.Color := clGray;
end
else begin
Brush.Color := rgb(255,255,255);
Pen.Style := psSolid;
Pen.Color := Brush.Color;
end;
end;
end;
end;


mais cela ne fonctionne pas.
Une idée?
Merci

4 réponses

Messages postés
33
Date d'inscription
lundi 19 avril 2004
Statut
Membre
Dernière intervention
21 janvier 2020
1
Désolé, j'avais pourtant cherché....
Puis un sursaut ?
Trouvé la solution en m'inspirant d'un source de Gbegreg :


procedure TForm1.ListView1AdvancedCustomDrawItem(Sender: TCustomListView;
  Item: TListItem; State: TCustomDrawState; Stage: TCustomDrawStage;
  var DefaultDraw: Boolean);
begin
  if Item.Selected = true then begin
    Sender.Canvas.Brush.Color := clHighlight;

Sender.Canvas.Font.Color := clWhite;
Sender.Canvas.Font.Style := [fsBold];
end
else begin
Sender.Canvas.Brush.Color := clWhite;
Sender.Canvas.Font.Style := [];
Sender.Canvas.Font.color := clBlack;
end;
end;/code
Messages postés
3793
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
8
Franchement je trouve qu'on devrait te donner un cadeau
Tu es un des rares membres qui cherche des informations sur la toile ou même sur CS.

Cordialement, Bacterius !
Messages postés
33
Date d'inscription
lundi 19 avril 2004
Statut
Membre
Dernière intervention
21 janvier 2020
1
@Bactérius : Franchement je ne sais pas si ta réponse est à prendre au 1er degré (effectivement le problème des écrits c'est qu'il y manque l'intonation).
En tout cas, je me sens relativement 'propre' car une fois résolu mon problème je transmets la solution.

Allez continuez, vous servez beaucoup (je le pense sincèrement)

Cordialement, jj
Messages postés
3793
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
8
Ca dépend ... faut-il vraiment offrir quelque chose à certains individus pour qu'ils se mettent à chercher ? Je disais ça à cause de la conjoncture actuelle des évènements (voir le méga-thread de Cboulas).
Il faut prendre mes messages comme on le sent, c'est généralement la bonne réponse avec moi.

Cordialement, Bacterius !