impossibleok
Messages postés54Date d'inscriptionlundi 27 mars 2006StatutMembreDernière intervention26 juin 2009
-
3 déc. 2008 à 14:49
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 2021
-
6 déc. 2008 à 18:38
bjr;
je reste toujours sur la dbgrid mysterieuse de delphi!!!
peut on colorier en vert juste les lignes selectionnées!
sinon ! peut on acceder a la valeur (selectionnée/non) d'une ligne dans l'evenement ondrawcolumncell ???
merci
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 202113 3 déc. 2008 à 15:53
bonjour,
PROCEDURE TForm1.DBGrid1DrawColumnCell(Sender: TObject; CONST Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
i: integer;
begin
if (gdFocused in State) or (gdSelected in State) then
begin
For i:=0 to Columns.Count do
if Column.Field = Query1.Fields[i] then
begin
Canvas.Font.Style:= ?
Canvas.Brush.Color := ?
Canvas.Font.Color := ?
end; end;
end;
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 202113 3 déc. 2008 à 16:19
Voilà ça marche :
PROCEDURE TForm1.DBGrid1DrawColumnCell(Sender: TObject; CONST Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
VAR i, CumulLongueur: integer;
BEGIN IF gdSelected IN State THEN
TDBGrid(Sender).Canvas.Brush.Color := clNavy
ELSE
BEGIN IF TDBGrid(Sender).DataSource.DataSet.FieldByName('PhoneExt').Value > 100 THEN TDBGrid(Sender).Canvas.Brush.Color : = clLime
ELSE TDBGrid(Sender).Canvas.Brush.Color := clWhite;
END;
TDBGrid(Sender).DefaultDrawColumnCell(rect, datacol, column, state);
END;
test effectué sur le champ "PhoneExt" de la table "employee" de la base DBDEMOS de Borland
cantador
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 202113 3 déc. 2008 à 19:33
Ohhh !!! ben tu l'as avec : TGridDrawState
TGridDrawState représente l'information utile lors de la restitution de la cellule d'une grille.
Unité
Grids ou QGrids
Syntaxe Delphi :
type TGridDrawState = set of (gdSelected, gdFocused, gdFixed);
Syntaxe C++ :
enum Grids__3 { gdSelected, gdFocused, gdFixed };
typedef Set<Grids_3, gdSelected, gdFixed> TGridDrawState;
Description
TGridDrawState représente l'information d'état de la cellule d'une grille qui est en cours de restitution. Il s'agit d'un ensemble comprenant 0 ou plus de :
Valeur Signification
gdSelected La cellule est actuellement sélectionnée.
gdFocused La cellule détient la focalisation d'entrée.
gdFixed La cellule est dans une région fixe de la grille.
impossibleok
Messages postés54Date d'inscriptionlundi 27 mars 2006StatutMembreDernière intervention26 juin 2009 4 déc. 2008 à 15:33
re:
tout ce code me semble un peu surchargé!
pourtant mon interogation etait bien claire et nette.
une ligne de code traduisant: "si ligne de dbgrid est selectionnée" !!!