[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 32
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
Rejoignez-nous