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 :
Merci d avance.
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;
Partager