IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bases de données Delphi Discussion :

Affecter une couleur à des enregistrements


Sujet :

Bases de données Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    285
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 285
    Par défaut Affecter une couleur à des enregistrements
    Bonjour,

    Dans un DBGrid, j'essaie d'associer une couleur à chaque enregistrement selon un autre champ, disons le champ catégorie.

    Dans une table access j'enregistre donc la catégorie et la couleur.

    Dans l'évènement OnDrawColumnCell je n'arrive pas à convertir le nombre de la couleur pour l'associer à ma catégorie.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
          Dbgrid1.Canvas.Font.color := clYellow;
          Dbgrid1.Canvas.Brush.Color := DM.tblEvenementsCOULEUR.Value ???
    Si quelqu'un peut m'aider d'avance merci!

    Bonne journée

    Cordialement, codial

  2. #2
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 400
    Par défaut
    Salut;

    d'abord il te faut le test sur le champ (sauf si tu l'as omis volontairement), puis je me demande sur le type du champs "DM.tblEvenementsCOULEUR" !!

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    285
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 285
    Par défaut
    Bonjour,

    quel genre de test je peux faire puisqu'il faut associer les couleur à chaque catégorie ??

    DM.tblEvenementsCOULEUR.Value est un integer!

    Cordialement

  4. #4
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 400
    Par défaut
    couleur est une constante prédéfinie elle ne prend pas des valeurs arbitraires donc dans ta table la couleur doit être renseignée telle quelle, tu peux jeter un oeil dans l'aide delphi pour ça.
    le test se fait sur la catégorie, exemple
    si categorie = 1 alors couleur = jaune;
    si categorie = 2 alotrs couleur = bleu;
    et ainsi de suite.

  5. #5
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 937
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 937
    Par défaut
    Stocker une couleur sous forme d'entier ne pose pas de problème.
    Je pense que l'erreur se situe plus au niveau de Value qui renvoi un variant impossible à convertir en TColor.

    J'essayerais plutôt d'utiliser AsInteger à la place de Value ou au minimum de passer par un StrToInt(xxx.Value).

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    285
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 285
    Par défaut
    Bonjour,

    merci pour vos réponse. Entre temps, j'ai écrit ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if DBPlanning.DataSource.DataSet.FieldByName('couleur').Value > 0 then
          DBPlanning.Canvas.Brush.color :=  tcolor('$' + IntToStr(DM.tblEvenementsCOULEUR.Value));
    Ce code repère bien les enregistrements concernés mais n'affecte pas la bonne couleur, à savoir dans mon exemple le jaune. De plus chaque champ à une couleur différente.
    J'ai essayé avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    tcolor('$' + IntToStr(DM.tblEvenementsCOULEUR.asInteger))
    mais celà me renvoie le même problème.

    pour Just-Soft
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    si categorie = 1 alors couleur = jaune;
    si categorie = 2 alotrs couleur = bleu;
    je ne peux pas car les catégories sont lues dans la table, aussi je ne peux les écrire en dur dans le code.

    Une idée pour modifier cette ligne?

    Cordialement, codial

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 18/12/2009, 13h44
  2. [Validator] affecter une couleur aux champs en erreur
    Par alexandre7 dans le forum Struts 1
    Réponses: 15
    Dernier message: 23/05/2009, 15h09
  3. Réponses: 2
    Dernier message: 30/03/2007, 12h55
  4. Réponses: 9
    Dernier message: 28/10/2005, 13h48
  5. [D7] affecter une couleur à un TLabel
    Par raoulmania dans le forum Composants VCL
    Réponses: 8
    Dernier message: 05/09/2005, 14h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo