Bonjour,

Voici mon souci : je remplis un dbgrid via un Tsqlquery dès l' ouverture de ma fiche.
Dans ce dggrid, en fonction de la valeur d'un champ, je colorie de façons différentes mon champ : vert si disponible , rouge si indisponible.
Mon souci serait que j'aimerais récuperer le nombre de badges disponibles et le nombre mis en rouge sans avoir à passer par un autre TSQLquery.
Peut-on ajouter un compteur au cours du remplissage du dbgrid et le faire afficher à la fin ?
Y a-t-il un événement pour cela ?
J'ai essayé la solution ci-dessous mais elle ne fonctionne pas :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
procedure Tfrm_bd_temp.DBGrid1PrepareCanvas(sender: TObject; DataCol: Integer;
  Column: TColumn; AState: TGridDrawState);
begin
   with (sender as Tdbgrid) do
  begin
      if datasource.dataset.fields[3].AsString='1' then
      begin
         if column.index=2 then
           canvas.Font.color:=clgreen;
         nb_dispo:=nb_dispo+1;
         lbl_dispo.caption:='Badges disponibles '+ inttostr(nb_dispo);
      end;
      if datasource.dataset.fields[3].AsString='2'  then
         if column.index=2 then
            canvas.Font.color:=clred;
      if datasource.dataset.fields[3].AsString='3' then
        if  column.index=2 then
          canvas.Font.color:=strtoint('$EDD38C');
      if datasource.dataset.fields[3].AsString='4' then
        if  column.index=2 then
          canvas.Font.color:=strtoint('$CCCCCC');
  end;
end;
Merci d avance.