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 :

Rafraîchir un DBGrid


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 Rafraîchir un DBGrid
    Bonjour à tous,

    J'ai un TPageControl avec deux pages dont une avec un DBGrid.

    Dans l'évènement OnDrawCellAttr de ce DBGrid je colorie (en vert) une cellule en fonction de la valeur d'un champ boolean.

    En Doublecliquant sur cet enregistrement, j'appelle une boite de dialogue qui permet, à partir d'une case à cocher, de modifier la valeur de ce champ boolean.

    Ce que je n'arrive pas à faire c'est, à la fermeture de la fiche de modification, à rafraichir cette cellule.

    c'est à dire, dans mon exemple, la faire passer du vert au blanc.

    Par contre, quand je change de page et que je reviens sur la page du DBGrid celui ci a bien été rafraichit.


    Quelqu'un à une idée ?

    D'avance merci

    Codial

  2. #2
    Membre éprouvé
    Avatar de TicTacToe
    Inscrit en
    Septembre 2005
    Messages
    1 940
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 940
    Section Delphi
    La mine d'or: La FAQ, les Sources

    Un développement compliqué paraitra simple pour l'utilisateur, frustrant non ?
    Notre revanche ? l'inverse est aussi vrai ;-)

  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
    Bonsoir,

    merci pour la réponse mais j'avais essayé et ça ne marche pas.

    Cordialement

    Codial

  4. #4
    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
    Bonsoir,

    Je viens de trouver la solution. Un simple requery sur le dataset de mon DBGrid.

    Ouf....

    Cordialement

  5. #5
    Rédacteur
    Avatar de Giovanny Temgoua
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2003
    Messages
    3 830
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2003
    Messages : 3 830
    Par défaut
    On ne raffraîchit pas le DBGrid !

    Par contre, on peut actualiser les données du dataset sous jascent

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DBGrid1.Datasource.Dataset....
    Ton problème n'est pas pas vraiment dû au raffraichissement des données j'ai l'impression mais plutôt au raffraichissement du contrôle.

    Citation Envoyé par Codial
    Par contre, quand je change de page et que je reviens sur la page du DBGrid celui ci a bien été rafraichit.
    Donc, au lieu de fermer/reouvrir le dataset (qui a pour conséquence de redessiner la grille), peut être un invalidate/repaint aurait suffit...

  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,

    j'avais essayé repaint, mais ça ne marche pas.

  7. #7
    Expert confirmé
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Par défaut
    Salut
    Citation Envoyé par codial
    Dans l'évènement OnDrawCellAttr de ce DBGrid ...
    Je ne connais pas cet évènement ! Tu utilises le DBGrid de la VCL fournit en standard ?

    En implémentant l'évènement OnDrawColumnCell, j'obtiens un rafraichissement immédiat de la cellule, sans refresh du DataSet ou Repaint du contrôle.

    @+ Claudius

  8. #8
    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,

    j'avais oublié de clore cette discution, merci Cl@udius.

    Effectivement, en implémentant l'évènement OnDrawColumnCell j'obtiens bien un rafraichissement immédiat de mes cellules sans refresh du DataSet ou Repaint du contrôle.

    Amitiés Codial

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

Discussions similaires

  1. DBLookupComboBox dans DBGrid
    Par KThrax dans le forum Bases de données
    Réponses: 7
    Dernier message: 24/08/2004, 15h18
  2. A propos du composant DBGrid
    Par _Rico_ dans le forum C++Builder
    Réponses: 2
    Dernier message: 24/07/2002, 09h18
  3. Couleur des lignes dans DBGrid
    Par eddie dans le forum C++Builder
    Réponses: 5
    Dernier message: 21/06/2002, 18h15
  4. associer une base de données(access) a un dbgrid
    Par ange1708 dans le forum MFC
    Réponses: 3
    Dernier message: 11/06/2002, 12h18
  5. [Kylix] Contrôle DBGrid
    Par KThrax dans le forum EDI
    Réponses: 1
    Dernier message: 10/05/2002, 14h18

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