Accueil > Forum > > > > Récupérer couleur / police dans une cellule de DBGrid
Récupérer couleur / police dans une cellule de DBGrid
jeudi 27 novembre 2008 à 11:29:46 |
Récupérer couleur / police dans une cellule de DBGrid

BernieNoel68
|
Bonjour a tous! J'ai un petit problème pour récupérer la couleur et la police d'une cellule dans un DBGrid. Je m'explique : pour rendre l'affichage plus agréable dans mon DBGrid je modifie la couleur et la police en fonction de la valeur d'un champ (via OnDrawColumnCell) ------------------------------------------------------------------------- procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
If TDBGrid(Sender).DataSource.DataSet.FieldByName('MonChamp').AsInteger=1Then begin
TDBGrid(Sender).Canvas.Brush.Color := clRed;
TDBGrid(Sender).Canvas.Font.Color := clWhite;
end else begin
TDBGrid(Sender).Canvas.Brush.Color := clWhite;
TDBGrid(Sender).Canvas.Font.Color := clBlack;
end;
TDBGrid(Sender).DefaultDrawColumnCell(rect,datacol,column,state);
end;
-------------------------------------------------------------------------
Jusque là pas de problème tout fonctionne!
Pour un export, je souhaite récupérer la valeur des champs (de ce coté la pas de problème, j'arrive a exporter le contenu de mon DBGrid) mais je souhaiterais récupérer également la couleur des cellules et la police!
J'ai essayé pas mal de truc, mais je n'arrive pas!
Avez vous une idée?
Merci d'avance!
|
|
vendredi 28 novembre 2008 à 00:23:46 |
Re : Récupérer couleur / police dans une cellule de DBGrid

beckerich
|
salut, comment parcours-tu les enregistrements pour l'export : par un ? while not Dataset.Eof do begin fonction d'export du record; Next; end; dans ce cas, tu dois faire les mêmes test que dans l'évènement DBGrid1DrawColumnCell
pour spécifier la couleur de la cellule et de la police.
Luc.
|
|
vendredi 28 novembre 2008 à 08:37:29 |
Re : Récupérer couleur / police dans une cellule de DBGrid

BernieNoel68
|
Merci de ta reponse! En effet ca aurait été la solution logique, mais ca ne va pas dans mon cas malheureusement. Le but est de faire une fonction générique d'export pour un DBGrid : procedure TForm1.ExportDBGrid( aGrid: TDBGrid ); begin
while not aGrid.DataSource.Dataset.Eof do begin //fonction d'export du record; Next; end;
end;
Donc je ne connait pas les critères de coloration du DBGrid et c'est bien là le problème! Il faudrait que je puisse les retrouver dynamiquement. Si queluqu'un a une idée je suis preneur!
|
|
vendredi 28 novembre 2008 à 12:01:41 |
Re : Récupérer couleur / police dans une cellule de DBGrid
|
vendredi 28 novembre 2008 à 12:07:49 |
Re : Récupérer couleur / police dans une cellule de DBGrid

beckerich
|
je suis entrain de bosser la dessus, cantador:
procedure TFM_DOCFOU.ACT_OOExecute(Sender: TObject); procedure TestCells; var sl: TStringList; i_row, i_col: integer; f_colenter: TNotifyEvent; begin i_row := 0; i_col := 0; sl := TStringList.Create; try DGD_TRFDOC.DataSource.DataSet.First; f_colenter := DGD_TRFDOC.OnColEnter; DGD_TRFDOC.OnColEnter := DGD_TRFDOCColEnter; try while not DGD_TRFDOC.DataSource.DataSet.Eof do begin for i_col := 0 to DGD_TRFDOC.Columns.Count - 1 do begin DGD_TRFDOC.SelectedIndex := i_col; sl.Add(format('ligne %d colonne %d texte %s', [i_row, i_col, DGD_TRFDOC.SelectedField.AsString])); // je ne trouve pas de propriété ou de méthode renvoyant la cellule active, on trouve bien la colonne (selectedindex) mais pas la cellule end; DGD_TRFDOC.DataSource.DataSet.Next; Inc(i_row); i_col := 0; end; finally DGD_TRFDOC.OnColEnter := f_colenter; end; sl.SaveToFile('toto.txt'); finally sl.Free; end; end; begin SCB_TRI.ItemIndex := 3; SCB_TRIClick(Self); with DTB_TRFDOC do begin TestCells; end; end;
|
|
vendredi 28 novembre 2008 à 12:27:17 |
Re : Récupérer couleur / police dans une cellule de DBGrid

beckerich
|
j'ai regardé l'implémentation de TCustomGrid dans l'unité Grids. Il n'y a pas de notion de cellule active dans les propriétés privées ou protégées. Il faudrait réécrire un composant en y ajoutant cette notion, mais bonjour le boulot, et puis la routine de BernieNoel68 ne serait plus indépendante...
j'abandonne, Luc.
|
|
vendredi 28 novembre 2008 à 13:32:16 |
Re : Récupérer couleur / police dans une cellule de DBGrid
|
vendredi 28 novembre 2008 à 13:45:37 |
Re : Récupérer couleur / police dans une cellule de DBGrid

beckerich
|
property Cells [ACol, ARow: Integer]: string;
renvoie une chaîne de caractères et non pas une référence à une cellule 
luc
|
|
vendredi 28 novembre 2008 à 14:11:16 |
Re : Récupérer couleur / police dans une cellule de DBGrid

cantador
|
hé oui..le TDBGrid est trop pauvre en ce domaine... avec Le TcxGrid on a en revanche : procedure TFAffaire.cxGrid1DBTableView1 CustomDrawCell( Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); begin et procedure TFAffaire.cxGrid1DBTableView1 StylesGetContentStyle( Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); begin cantador 
|
|
Cette discussion est classée dans : récupérer, couleur, sender, police, tdbgrid
Répondre à ce message
Sujets en rapport avec ce message
Fenêtre pour police, couleur ... [ par Ramses__987 ]
Slt,Est-ce que qqn sait comment ouvrir la fenêtre de word, pour choisir la police, la couleur etc ... ? Mci d'avance, ++
Couleur moyenne d'une image [ par Paic_citron ]
Voila, j'aimerais récupérer la couleur moyenne d'une image, dans le but de réaliser un logiciel de Mozaik Art, c'est comme le Ascii Art, mais à la pla
dbgrid,couleur.... [ par exyacc ]
salut, j'utilise ce code pour changer la couleur de selection d'un dbgrid. procedure TForm1.RxDBGrid3DrawColumnCell(Sender:TObject;const Rect:TRect;D
Couleur de la police d'une ligne d'un ListView [ par rguef ]
Bonjour, Je cherche à changer la couleur de police d'une ligne dans un ListView ? Est-ce possible ?WezzaR
Récupérer la couleur d'une cellule stringGrid? [ par ataeallah ]
Bonjour,Comment récupérer la couleur d'une cellule dans une stringGrid (Par exemple la premier cellule de la deuxième ligne)?Merci d'avance.ABDA@+
Couleur separation colonne TDBGrid [ par patdimby ]
Bonjour a tousJe me demande comment peut on modifier la couleur de la ligne quisepare deux colonnes(champs) d'un TDBGrid.Merci de me repondre.
couleur et police d'un menu [ par may2008 ]
Bonjour, j'aimerais svoir s'il ya une possibilté de modifier couleur et police d'un menu créer en delphi 6Merci.
Problème Violation d'accès drag&drop entre 2 tableaux [ par Flash11 ]
Bonjour , Je vais tenter d'être le plus clair et je remercie d'avance tout ceux qui vont m'aider. Voila j'ai un programme composé de : -2 TDBGrid -
Un petit Proxy fait maison [ par beloubelou ]
Bonjour, Ce petit programme fonctionne comme un proxy. Il utilise deux composants delphi: THttpserver de FPiette et TAlWinhttp de Alcinone. Le premi
Livres en rapport
|
Derniers Blogs
MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson TECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PCTECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PC par ROMELARD Fabrice
Speakers: Thierry Rapatout, Antoine Petit et Xavier Trebbia Cette session entre dans le cadre des RDV Décideurs des TechDays 2012, elle est liée à la consumérisation de l'IT et la mise en place du "DeskTop as a Service" dans de plus en ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : SYSTEM CENTER SERVICE MANAGER 2012 VUE D'ENSEMBLETECHDAYS PARIS 2012 : SYSTEM CENTER SERVICE MANAGER 2012 VUE D'ENSEMBLE par ROMELARD Fabrice
Speakers: Julien Marechal, Gautier Confiant, Sébastien MEYER La session débute par le positionnement de la solution System Center par rapport aux concepts d'organisation ITIL. Le portail du catalogue de se...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|