[DbGrid] Problème de positionnement

Résolu
jgtrax
Messages postés
1
Date d'inscription
mercredi 28 décembre 2005
Statut
Membre
Dernière intervention
28 décembre 2005
- 28 déc. 2005 à 11:43
cs_Delphiprog
Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Membre
Dernière intervention
9 janvier 2013
- 28 déc. 2005 à 14:48
Bonjour,

Dans une dbgrid, la ligne que je souhaite colorier n'est pas la bonne :
Il colorie la suivante

procedure TFPrincipale.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
With DbGrid1 do
begin
if TblCampListDepartement.AsString = CBListe.Text then
begin
Column.Color := clRed;
end
else
Column.Color := clYellow;
end;
end;

1 réponse

cs_Delphiprog
Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Membre
Dernière intervention
9 janvier 2013
31
28 déc. 2005 à 14:48
L'aide en ligne dit ceci : "Ecrivez un gestionnaire d'événement OnDrawColumnCell pour réaliser un dessin personnalisédes données des cellules de la grille.Le dessin des cellules se fait en utilisant les méthodes de la propriétéCanvas."

C'est juste ce qu'il te manque.
Ainsi, ton code devient :

procedure TFPrincipale.DBGrid1DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
begin
With DbGrid1 do
begin
if TblCampListDepartement.AsString =  CBListe.Text then
//Column.Color := clRed;
      Canvas.Brush.Color := clRed;
    else
//Column.Color := clYellow;
      Canvas.Brush.Color := clYellow;

    DefaultDrawColumnCell(Rect, DataCol, Column, State);
   end ;

end;


<HR color =#008000>
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
3