Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Colorier une cellule lorque l'on clique dessus [ Divers / Débutant(e) ] (grandyaka54)

jeudi 28 février 2008 à 09:35:03 | Colorier une cellule lorque l'on clique dessus

grandyaka54

Bonjour,

J'ai un DBGrid relié a un DataSource lui meme relié à un IBQuery et IBUpdateSql.

Malgrès les nombreux exemples sur ce forum je n'arrive pas a colorier la cellule que je sélectionne avec la souris et qui reste en couleur pendant la saisie.

Merci de l'aide...


jeudi 28 février 2008 à 16:45:01 | Re : Colorier une cellule lorque l'on clique dessus

MAURICIO

Bonjour,

// Désactiver le coloriage par défaut :
NomDBGrid.defaultDrawing à false!!!

Ensuite, dans le OnDrawColumnCell de ta DBGrid fais comme ceci:

procedure TFrmPrin.NomDBGridDrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
begin
  If (State = [gdSelected]) Or (State = [gdSelected, gdFocused])
  Then NomDBGrid.Canvas.Brush.Color  := clGreen;

  // Appel de la fonction par défaut :
  NomDBGrid.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;

Voilá
A+

jeudi 28 février 2008 à 17:06:08 | Re : Colorier une cellule lorque l'on clique dessus

grandyaka54

Réponse acceptée !

Merci pour l'aide mais malheureusement, ça n'a pas fonctionné malgres  DBGrid.defaultDrawing = False.

Par contre, j'ai écrit qui marche puisque au moment où la cellule perd le focus (Touche tab ou entrée), il met le contenu saisie en rouge si elle ne respecte pas les conditions et reste en noir dans le cas contraire.

-----------------------------------------------------------------------------------------------------------------

  //Le contenu de la colonne [9] en rouge si condition non respecter
  if not (gdFocused in State) then
  begin

    if Column.Index = 9 then  
    with DBGrid do
    begin

      if (Length(TField(Column.Field).AsString) <> 8) and (Length(TField(Column.Field).AsString) <> 11)  then
      begin
        Canvas.Font.Color := clRed;
        Canvas.Font.Style := [fsBold];
        Canvas.Font.Size := 10;
      end;
    end;
  end;

  //On applique les modifications.
  DBGrid.DefaultDrawColumnCell(Rect,DataCol, Column, State);

-------------------------------------------------------------------------------------------------------------------

Merci pour l'aide.


jeudi 28 février 2008 à 17:10:38 | Re : Colorier une cellule lorque l'on clique dessus

MAURICIO

A mon avis c' est ici qui a un problème : 
if not (gdFocused in State) then

tu dois faire :
if (gdFocused in State) then

A+


jeudi 28 février 2008 à 17:11:42 | Re : Colorier une cellule lorque l'on clique dessus

MAURICIO

Ou alors pour la cellule seleccionnée mais sans focus:
if (gdSelected in State) then

jeudi 28 février 2008 à 17:26:07 | Re : Colorier une cellule lorque l'on clique dessus

grandyaka54

Alors avec :
  if (gdFocused in State) then
ou alors
  if (gdSelected in State) then
ou encore
  if not (gdSelected in State) then

avec DBGrid.defaultDrawing = False ou True, je n'ai aucun changement.

Mais ça marche seulement comme dans mon exemple : 
   if not (gdFocused in State) then



Cette discussion est classé dans : cellule, clique, dessus, colorier, lorque


Répondre à ce message

Sujets en rapport avec ce message

Colorier une cellule d'un grid [ par lapucedu88 ] Bonjour, J'aurai souhaiter savoir comment il faut que je fasse pour que lorsque je clique dans une cellule d'un Grid celle ci change de couleur.Je pen COLORIER UNE CELLULE BIEN DEFINIE D'UN STRINGGRID [ par guy jeuniaux ] bonjour,Je tourne en rond sur tous les forums et je n'arrive pas à écrire ce petit bout de code.Je voudrais tout simplement lorsque je clique sur un b Pb avec une SavePictureDialog. [ par Becracker ] Salut les gars, J'ai un ptit -et étrange- prob avec une SavePictureDialog. J'ai mis dams mon application la possibilité de sauvegarder des images : K Label en avant plan [ par kleline ] Je souhaite affiché un label au dessus (en avant plan) d'un composant planner. Un peu a la façon de photoshop, un calque au dessus d'un autre. Mais so Recuperer la valeur d'une cellule dans un dbgrid / Bloquer une cellule [ par vaginator120 ] Bonjour tout le monde,Mon problème est simple, je souhaite recuperer la valeur d'un cellule ou de bloàquer celle-ci.J'arrive a recuperer la ligne et l controler la saisie dans une cellule d'un dbgrid? [ par kam81 ] Bonjour,Est il possible de controler la saisie d'une donnée dans une cellule d'un dbgrid.par exemple n'autoriser que la saisie des chiffres pour modif problême avec les nombres dans un classeur OpenOffice [ par darky93 ] Bonjour!Je fait un  programme qui doit "fonctionné" aussi bien avec Excel et OpenOffice. Avec Excel "j'ai pas trop de problèmes", mais avec OpenOffice cellule de dbgrid [ par deubal ] bonjour,Voila, j'ai un dbgrid lie a une table qui affiche 3 champs (code, libelle, serial), les utilisateurs selectionnent le code ou le libelle et je Double clique sur un TPageControl [ par Indelphini ] Bonjour j'ai une appli multi documents, les documents étant accessibles par les onglets d'un TPageControl. Un clique droit sur un onglet ouvre un menu changer le text a chaque clic [ par hitman94440 ] Bonjour a tous.... Je suis nouveau donc je suis le nul des nuls. Voila je veux faire sa: j'ai une texte1 et un bouton puis moi je veux que chaque fois


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,562 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.