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

C++Builder Discussion :

Colorer une cellule TDBGrid C++Builder


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Inscrit en
    Mars 2011
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 2
    Par défaut Colorer une cellule TDBGrid C++Builder
    J'aimerais connaître, si quelqu'un est habile en la matière, comment colorer une cellule d'un TDBGrid à partir d'un TButton : c'est-à-dire je ne sais pas comment récupérer la cellule séléctionnée d'une colonne et changer sa couleur. Si possible, sans utiliser l'évènement OnDrawColumnCell

    Merci d'avance

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 081
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 081
    Par défaut
    Tu n'as pas du chercher bien longtemps pour te pas trouver la propriété SelectedField du TDBGrid
    Evidemment, cela suppose Options n'inclut pas dgRowSelect

    En combinant MouseCoord et CellRect (nécessite de hacker les propriétés protected du TCustomGrid comme on le fait en Delphi dont j'ignore la faisabilité en C++), tu peux obtenir la positiion dans le Canvas

    Ensuite, pour dessiner, faut passer par le Canvas, c'est possible mais tu perdras ta coloration dès que la grille voudra se redessiner !

    Cela semble difficile d'echapper à OnDrawColumnCell, tu peux très bien utiliser une variable pour indiquer si la colonne\cellule doit être colorée ou pas.
    Dans le bouton, tu modifie cette variable, et tu fais invalidate sur le DBGrid pour le forcer à se redessiner !

    l'autre solution serait de redéfinir la WndProc du TDBGrid pour intercepter WM_PAINT, bon courage !

    Enfin la dernière solution, tu hérite le composant TDBGrid (dans un nouveau Paquet), tu surcharge la méthode Paint et tu ajoutes des propriétés pour configurer le nouveau comportement !
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Candidat au Club
    Inscrit en
    Mars 2011
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 2
    Par défaut
    Merci de ta proposition, je vais faire de mon mieux pour adapter à partir de tes conseils, c'est mon premier programme de gestion en c++builder que je fais maintenant. Je dois encore beaucoup à découvrir

Discussions similaires

  1. colorer une cellule de striggrid
    Par malikakika dans le forum C++Builder
    Réponses: 4
    Dernier message: 09/06/2008, 10h31
  2. coloré une cellule d'un treeview
    Par awalter1 dans le forum GTK+ avec Python
    Réponses: 2
    Dernier message: 19/05/2008, 14h31
  3. Comment colorer une cellule d'une StringGrid
    Par Annibal dans le forum C++Builder
    Réponses: 2
    Dernier message: 12/05/2008, 12h35
  4. Colorer une cellule précise d’une TStringGrid
    Par gilardino dans le forum Débuter
    Réponses: 1
    Dernier message: 16/04/2008, 12h10
  5. Colorer une Cellule depuis une Fonction Personnelle
    Par compte dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 18/03/2008, 19h38

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