Comment modifier la couleur d'une ligne de ListView ?

Résolu
vieuxpere Messages postés 195 Date d'inscription samedi 3 janvier 2004 Statut Membre Dernière intervention 17 décembre 2014 - 2 mars 2009 à 00:19
vieuxpere Messages postés 195 Date d'inscription samedi 3 janvier 2004 Statut Membre Dernière intervention 17 décembre 2014 - 3 mars 2009 à 00:03
Bonjour,

Je souhaiterai savoir comment affecter par exemple la couleur ClRed à la ligne 2 ?

J'ai eu beau chercher mais je n'ai pas trouvé,

Merci pour vos conseils.

9 réponses

vieuxpere Messages postés 195 Date d'inscription samedi 3 janvier 2004 Statut Membre Dernière intervention 17 décembre 2014
2 mars 2009 à 11:24
Bonjour et merci de cet exemple,

Je l'ai vu cette exemple avant de poster ma question, mais je ne suis hélas pas arrivé à l'exploiter.

Aussi je repose la question, il y a t'il une méthode à peu prés simple pour coloriser la ligne souhaitée ?
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
2 mars 2009 à 11:55
l'exemple fourni exploite l'évènement :
OnAdvancedCustomDrawSubItem

mais je ne suis hélas pas arrivé à l'exploiter.

??
cantador
0
vieuxpere Messages postés 195 Date d'inscription samedi 3 janvier 2004 Statut Membre Dernière intervention 17 décembre 2014
2 mars 2009 à 13:47
Bonjour,

Je vais regarder. Merci.
0
Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
2 mars 2009 à 15:02
Salut,

Une ListBox ne serait pas suffisant, dans ton cas?

Parce que c'est facile de surligner une ListBox... et donc je sais le faire.   héhéhé
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
2 mars 2009 à 15:13
@Caribensila:
c'est vrai les questions sont de plus en plus difficiles..
c'est pas juste...
d'ici peu, il faudra rendre la copie sous huit jours

cantador
0
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
2 mars 2009 à 15:38
pourtant l'exemple est aussi simple qu'avec une ListBox
il y a juste un évènement en plus pour les SubItems mais le principe reste le même

 
@+
Cirec

<hr siz="" />
0
Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
2 mars 2009 à 15:51
...
Quand je dis que c'est facile, c'est parce que j'ai le code sous le coude.


Et que je me sens un peu fainéant aujourd'hui. Pas envie d'aller regarder sous la jupe de la Listview...       

Et de toute façon, c'est Vieuxpere qui cherche à détourner la mineure...
0
Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
2 mars 2009 à 19:34
Ok!  Mais c'est seulement parce que je respecte les petits chenus qui regardent pas sous les jupes des filles...  :)))



C'est un code pour une ListBox qu'il te faudra adapter selon les indications de Cirec et en fonction de tes besoins, ok?

// Propriété "Style" de  ListBox1 = lbOwnerDrawFixed.

// Code à coller dans l'événement "OnDrawItem" :



procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
  var Col : TColor;
  begin
  if Index = 1 then Col := clRed //Couleur du surlignement pour la 2ème ligne..
  else Col := (Control as TListBox).Color;// ..sinon pas de couleur
  {Dessin du fond du ListBox en "surligné".}
  (Control as TListBox).Canvas.Brush.Style := bsSolid;
  (Control as TListBox).Canvas.Brush.Color := Col;
  (Control as TListBox).Canvas.FillRect(Rect);
  {Dessin du texte en noir.}
  (Control as TListBox).Canvas.Brush.Style := bsClear;
  (Control as TListBox).Canvas.Font.Color := clBlack;
  (Control as TListBox).Canvas.TextOut
         (Rect.Left+1, Rect.Top +1, (Control as TListBox).Items.Strings[Index]);
end;




{Exemple d'utilisation : à la 2ème ligne, ce sera surligné en rouge.}
procedure TForm1.Button1Click(Sender: TObject);
begin
ListBox1.Items.Add('Une nouvelle ligne');
end;
0
vieuxpere Messages postés 195 Date d'inscription samedi 3 janvier 2004 Statut Membre Dernière intervention 17 décembre 2014
3 mars 2009 à 00:03
Merci à tous, j'ai enfin les bons outils pour poursuivre...
0
Rejoignez-nous