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 :

[DB] Update de DbGrid en tout genre


Sujet :

Bases de données Delphi

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 187
    Points : 72
    Points
    72
    Par défaut [DB] Update de DbGrid en tout genre
    Me revoila pour avoir deux, trois astuces concernant les Dbgrid
    Car dès qu'on travaille sur plus d'une Tform... c'est plus la meme chose!!
    1. Quelqu'un sait comment faire un refresh de DB automatique?
      Car, si j'ajoute un nouveau champ à partir de Tform2 et que je reviens sur Tform1 il faut que je ferme le programme puis que je le réouvre pour appercevoir le nouveau champ dans mon DbGrid!!

    2. Lorsque je veux modifier une ligne, delphi se positionne automatiquement sur la premiere ligne du DbGrid.
      Comment lui dire qu'il doit se positionner sur la ligne selectionner par le click-souris? (je me doute que ça doit avoir un rapport avec : OnClick mais apres??)

    3. Le top du top que j'adorerai faire et de pouvoir modifier directement une ligne en double cliquant dessus! (mais comment faire???)

    4. Et pour finir, j'aimerai associer une couleur particuliere à chaque ligne.
      C'est facil de le faire pour toutes les lignes du DbGrid mais pour une seule
      Par exemple : la ligne dont nom = Martin jaune...
      la ligne juste apres dont nom = Dabranachoubouktra rose... etc


    Je suis fatigué ... je vous souhaite une bonne nuit à tous

  2. #2
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Citation Envoyé par melles
    Quelqu'un sait comment faire un refresh de DB automatique?
    Car, si j'ajoute un nouveau champ à partir de Tform2 et que je reviens sur Tform1 il faut que je ferme le programme puis que je le réouvre pour appercevoir le nouveau champ dans mon DbGrid!!
    et au lieu de quitter et réouvrir ton programme , si quand tu quittes ta form2, tu faisais un Refresh sur la source de données liée à ton DbGrid ?

    Lorsque je veux modifier une ligne, delphi se positionne automatiquement sur la premiere ligne du DbGrid.
    Comment lui dire qu'il doit se positionner sur la ligne selectionner par le click-souris? (je me doute que ça doit avoir un rapport avec : OnClick mais apres??)
    Que fais tu quand tu modifies une ligne (Code ??)

    Le top du top que j'adorerai faire et de pouvoir modifier directement une ligne en double cliquant dessus! (mais comment faire???)
    Tu as dans le DbGrid un évènement qui s'appel OnDblClick

    Et pour finir, j'aimerai associer une couleur particuliere à chaque ligne.
    C'est facil de le faire pour toutes les lignes du DbGrid mais pour une seule
    Par exemple : la ligne dont nom = Martin jaune...
    la ligne juste apres dont nom = Dabranachoubouktra rose... etc
    Pour ca il te faut une correspondance Nom <-> Couleur quelque part, où quelques choses qui permettent de savoir quel couleur mettre a tel ou tel ligne.
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 187
    Points : 72
    Points
    72
    Par défaut
    1. résolu... ou presque

    2. Voici mon code pour deux champs, c'est la meme chose pour tous les autres.
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
       
      //afficher les champ:
      NomEdit.Text:=Table.FieldByName('Nom').AsString;
      PrenomEdit.Text:=Table.FieldByName('Prenom').AsString;
       
        //modifier les champs
        If NomEdit.Text='' then showmessage('Please choose a last name')
        else
        begin
          if PrenomEdit.Text='' then showmessage('Please choose a first name')
          else
            begin
               Table.Edit;
               Table.FieldByName('Nom').Value := NomEdit.Text;
               Table.FieldByName('Prenom').Value := PrenomEdit.Text ;
               Table.Post;
            end;
        end;
      Que je soit positionné sur le dernié ou sur le i-ème enregistrement.. il m'affichera automatiquement le premier!!!
      Que dois-je ajouter pour que ce soit correct??

    3. J'ai réussi à le faire en associant OnDbClick à un bouton

    4. Quant au dernier point:
      Pour ca il te faut une correspondance Nom <-> Couleur quelque part, où quelques choses qui permettent de savoir quel couleur mettre a tel ou tel ligne.
      Je ne sais vraiment pas comment faire cela!!!!
      S'il existe un tuto ou klk chose je suis preneur car je ne sais pas sur quoi je dois effectué mes recherches!!!
      Comment faire cette correspondance?


  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 187
    Points : 72
    Points
    72
    Par défaut
    J'ai trouvé solution au point 4 http://www.developpez.net/forums/sho...=couleur+ligne

    Maintenant, il faut une solution au point deux!!!
    Ou est mon erreur?
    Pourquoi est ce que je reste figé sur le premier enregistrement??

  5. #5
    Membre à l'essai
    Inscrit en
    Septembre 2006
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 15
    Points : 12
    Points
    12
    Par défaut demande d'infos
    est-ce que les deux messages apparaîssent ?

    Dans quel événement ton code est-il écris

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 187
    Points : 72
    Points
    72
    Par défaut
    Oui tout apparait. Le code est correct... Le hic vient du fait que c'est toujours le premier enregistrement qui apparait!!!

    Maintenant que j'ai associé OnDbClick au bouton modifier (code plus haut) si je double click sur la ligne trois enregistrement de la ligne 1 qui apparait

  7. #7
    Membre à l'essai
    Inscrit en
    Septembre 2006
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 15
    Points : 12
    Points
    12
    Par défaut ???
    NomEdit et PrenomEdit sont des TEdit je suppose ?

    Lorsque tu as les messages, tu te positionnes sur les TEdit pour les renseigner ?

    Le mieux ce serait d'enlever le post et de renseigner tes champs directement dans le dbgrid.

    Le post tu peux le faire sur l'événement OnClick d'un bouton par exemple ...

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 187
    Points : 72
    Points
    72
    Par défaut
    NomEdit et PrenomEdit sont des TEdit je suppose ?
    Oui ce sont des Tedit et des TcomboBox
    Lorsque tu as les messages, tu te positionnes sur les TEdit pour les renseigner ?
    En fait, j'ecris les elements actuels dans les Tedit et TcomboBox pour pouvoir les modifier.
    Une fois modifaction apportée, je ré-injecte les nouvelles donées dans la DB.
    C'est comme ça que je vois la chose.
    Le mieux ce serait d'enlever le post et de renseigner tes champs directement dans le dbgrid.

    Le post tu peux le faire sur l'événement OnClick d'un bouton par exemple ...
    Là, sorry mais je vois pas ce que tu veux dire!!!!
    C'est quoi le post???

  9. #9
    Membre à l'essai
    Inscrit en
    Septembre 2006
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 15
    Points : 12
    Points
    12
    Par défaut Le post ...
    Bonjour.

    quand je te parle du post je me référe à la ligne "Table.Post;".

    En fait sur l'événement double clic de ta grille tu pourrais ne mettre que la commande "Table.Edit;".

    Tu renseignes tes champs directement dans ta grille et, dans un événement OnClick d'un bouton tu écris la commande "Table.Post;"

    De cette manière tu peux même avoir un bouton d'annulation de saisie.

    Cordialement.

Discussions similaires

  1. DBGrid sélectionner toutes les rows ?
    Par Orthonic dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 12/05/2007, 19h26
  2. composant dbgrid avec un genre de tree
    Par lassmust dans le forum Bases de données
    Réponses: 2
    Dernier message: 09/11/2006, 12h08
  3. [XHTML] Quelques questions en tout genre
    Par j14z dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 01/11/2005, 21h46
  4. Update affichage dbgrid
    Par maw dans le forum C++Builder
    Réponses: 3
    Dernier message: 21/10/2005, 19h26

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