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 :

Choix d'evenement pour dbgrid


Sujet :

Bases de données Delphi

  1. #1
    Membre actif
    Inscrit en
    Juin 2008
    Messages
    324
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 324
    Points : 217
    Points
    217
    Par défaut Choix d'evenement pour dbgrid
    salut
    pardant si je pose ce question ,qu'il me semble traité dans le forum mais j'arive pas à les trouvé.
    Question:
    je developpe une application de facturation,dans le fiche VENTE j'ai une button CLIENT ,lorsqueje click sur button client une autre fiche s'affiche qui contient un dbgrid qui contien touts les client ,lorsque je click sur la ligne de client son NUMERO s'affiche dans la fiche VENTE et cette dbgrid seras fermer.
    ma question :
    pour le dbgrid de la fiche client quelle l'evenement qui me permet de faire ça?
    cordialement rec82.

  2. #2
    Membre expérimenté
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Points : 1 307
    Points
    1 307
    Par défaut
    OnCellClick ou OnDblClick par exemple.
    Ce que l'on apprend par l'effort reste toujours ancré plus longtemps...

  3. #3
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 042
    Points : 40 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut
    je vote pour OnDblClick
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  4. #4
    Membre éprouvé
    Avatar de Andry
    Profil pro
    Informaticien
    Inscrit en
    Juillet 2002
    Messages
    1 164
    Détails du profil
    Informations personnelles :
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 164
    Points : 1 181
    Points
    1 181
    Par défaut
    Mois ce que je fais d'habitude c'est une
    fiche modale qui intègre :
    - Une propriété Numero (soit entier soir string en fonction des data)
    - Une grille pour la selection
    - 2 boutons Ok en mrOK et Annulé en mrCancel.
    Ensuite gérer l'évènement :
    - sélection de ligne de la grille pour affecter la propriété numero
    - Double clic sur la grille qui affecte la propriété numero mais qui renvoi un Modalresult mrOk.
    Donc dans la fiche appelante, il suffit de tester le modalresult de la fiche appelé pour récupérer ou non la valeur de la propriété numero.

    Voilà.
    On progresse .....

  5. #5
    Membre actif
    Inscrit en
    Juin 2008
    Messages
    324
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 324
    Points : 217
    Points
    217
    Par défaut salut
    salut.
    merci à tout l'équipe j'essayai puis je vous repond.
    merci beacoup autre fois.
    cordialelement rec82.

  6. #6
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 771
    Points
    2 771
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    je vote pour OnDblClick
    +1
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

  7. #7
    Membre actif
    Inscrit en
    Juin 2008
    Messages
    324
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 324
    Points : 217
    Points
    217
    Par défaut salut
    salut
    merci beacoup, c'est OnDblClick qui ma servir.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    procedure TForm13.DBGrid1DblClick(Sender: TObject);
    begin
    datamodule16.t1.Edit;
    ////*affectation des valeurs pour des champs dans form3:Nouveau vente**//
    form3.Edit2.Text:= datamodule16.t1.fieldbyname('client').AsString;
    form3.Label7.Caption:=datamodule16.t1.fieldbyname('nom').AsString;
    form3.Label9.Caption:=datamodule16.t1.fieldbyname('adr').AsString;
    datamodule16.t1.Post;
    form13.Close;
    end;
    pour andry :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    fiche modale qui intègre :
     Une propriété Numero (soit entier soir string en fonction des data)
    - sélection de ligne de la grille pour affecter la propriété numero
    - Double clic sur la grille qui affecte la propriété numero mais qui renvoi un Modalresult mrOk.
    en effet j'ai pas compris ,ou se trouve la proprieté numéro de fiche modal
    merci beacoup pour tout l'équipe.
    cordialement rec82.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations forums :
    Inscription : Février 2009
    Messages : 94
    Points : 41
    Points
    41
    Par défaut
    ecoute rec pour ta reponse :
    On dblclick c'est la plus intuitive mais moi je fait toujours une panoplie de trucs associés :
    Un boutton avec le onclick pour la procedure d'affectation des données a la fiche facture + le ondblclick du dbgrid associé au onclick du bouton + la propriété défault du bouton a true pour autoriser lappui sur ENTREE.

    Petite remarque : j'ai lu dans ton code DATAMODULE16, t'a 16 datamodule dans ton application ?????????? il te restait plus de place sur les autres ????? si oui ton appli est a revoir !

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations forums :
    Inscription : Février 2009
    Messages : 94
    Points : 41
    Points
    41
    Par défaut
    Citation Envoyé par Andry Voir le message
    Double clic sur la grille qui affecte la propriété numero mais qui renvoi un Modalresult mrOk.
    Un event onclick du bouton (pointé par le ondblclick du grid) qui affecte le n et close la fiche est mieux vu pour un débutant.

    Il a dit la "propriété numéro" de ton client pas le numéro modal, ca nexiste pas mais le resultat modal, regarde dans les propriété du bouton MODALRESULT et celle de la fiche tu clique sur F1 dans l'aide t'a un exemple clair pour utiliser cette propriété.
    Elle sert a communiquer à ta fiche sous modale quel resultat a été envoyé par la fiche modale (MROK, MRYES, MRNONE etc.).

  10. #10
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 771
    Points
    2 771
    Par défaut
    Citation Envoyé par rec82 Voir le message
    datamodule16.t1.Edit;
    ////*affectation des valeurs pour des champs dans form3:Nouveau vente**//
    form3.Edit2.Text:= datamodule16.t1.fieldbyname('client').AsString;
    form3.Label7.Caption:=datamodule16.t1.fieldbyname('nom').AsString;
    form3.Label9.Caption:=datamodule16.t1.fieldbyname('adr').AsString;
    datamodule16.t1.Post;
    form13.Close;
    là, j'ai pas pigé, ou tu as mal copié..??

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    [QUOTE=rec82;4088884]
    ////*affectation des valeurs pour des champs dans form3:Nouveau vente**//
    with datamodule16.t1 do
      begin
          Edit;         
          fieldbyname('client').AsString:=form3.Edit2.Text;
          fieldbyname('nom').AsString:=form3.Label7.Caption;
          fieldbyname('adr').AsString:=form3.Label9.Caption;
          Post;
      end;
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

  11. #11
    Membre actif
    Inscrit en
    Juin 2008
    Messages
    324
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 324
    Points : 217
    Points
    217
    Par défaut salut
    salut
    pour NorexaMS ,j'ai pas compris que veut tu dire par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Petite remarque : j'ai lu dans ton code DATAMODULE16, t'a 16 datamodule dans ton application ?????????? il te restait plus de place sur les autres ????? si oui ton appli est a revoir
    !
    et pour edam ,non je vous explique :

    j'ai une fiche (form3) et une autre fiche (form13)
    form3 appele à form13 ,dans form13 j'ai une dbgrid ,lorsque je doubleclick sur cette dbgrid ,je récupére les donnés de l'enregistrement selectionner dans les edits de form3.
    cordialement rec82.

  12. #12
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 771
    Points
    2 771
    Par défaut
    Citation Envoyé par rec82 Voir le message
    j'ai une fiche (form3) et une autre fiche (form13)
    form3 appele à form13 ,dans form13 j'ai une dbgrid ,lorsque je doubleclick sur cette dbgrid ,je récupére les donnés de l'enregistrement selectionner dans les edits de form3.
    cordialement rec82.
    alors pourquoi ce Edit et post????
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

  13. #13
    Membre actif
    Inscrit en
    Juin 2008
    Messages
    324
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 324
    Points : 217
    Points
    217
    Par défaut salut.
    salut
    tu a raison edam.pas de EDIT et POST.
    merci cordialement rec82.

  14. #14
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 771
    Points
    2 771
    Par défaut
    Citation Envoyé par Andry Voir le message
    Mois ce que je fais d'habitude c'est une
    fiche modale qui intègre :
    - Une propriété Numero (soit entier soir string en fonction des data)
    - Une grille pour la selection
    - 2 boutons Ok en mrOK et Annulé en mrCancel.
    Ensuite gérer l'évènement :
    - sélection de ligne de la grille pour affecter la propriété numero
    - Double clic sur la grille qui affecte la propriété numero mais qui renvoi un Modalresult mrOk.
    Donc dans la fiche appelante, il suffit de tester le modalresult de la fiche appelé pour récupérer ou non la valeur de la propriété numero.

    Voilà.
    comme tu utilise un Datamodule tu doit prendre en considération ce que ta dit Andry, c'est ce que je fait moi aussi à peut prés, sûrement Andry va t'expliqué plus si tu veux ;
    et si tu as besoin de ta forme qui contient la liste dans une autre forme ??,
    par exmple une liste des artiles, il est applé depuis (bon de réception, facture, bon de livraison,......), alors que va tu faire là????
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

  15. #15
    Membre actif
    Inscrit en
    Juin 2008
    Messages
    324
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 324
    Points : 217
    Points
    217
    Par défaut Salut
    Salut
    merci bien edam pour votre aide.
    sûrement Andry va t'expliqué plus si tu veux ;
    je searis trés heureux donc.
    cordialement rec82.

  16. #16
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 419
    Points : 5 818
    Points
    5 818
    Par défaut
    salut

    pourquoi ne pas faire une methode addEnr dans le datamodule

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    Function ValideEnr(Rec) : Boolean
    begin 
      Result := False;
      if (Rec.client <> '') and
         (Rec.Nom <> '') and 
         (Rec.adr <> '') Then 
       Result := True;
    end;
     
    Procedure TDataModule16.addEnr(Rec : TRecInfo);
    begin
       If ValideEnr(Rec) Then
       begin
          with t1 do 
          begin
             Edit;
             fieldbyname('client').AsString := Rec.client;
             fieldbyname('nom').AsString   := Rec.nom;
             fieldbyname('adr').AsString    := Rec.adr;
             Post;
          end;
       end
       else
        Showmessage('Enregistrement non complet') ;
    end;
     
    Function TDataModule16.GetEnr :TRecInfo ;
    begin
       Result.Client := fieldbyname('client').AsString;
       Result.nom  :=  fieldbyname('nom').AsString;
       Result.adr   :=  fieldbyname('adr').AsString;
    end;
    je trouve çà plus sympa de centralisé les action sur les données
    ensuite il suffit de faire appel a getenr pour l'affichage

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    procedure TForm13.DBGrid1DblClick(Sender: TObject);
    var 
      Enr : TrecInfo;
    begin 
      Enr := datamodule16.GetEnr;
      form3.Edit2.Text:= Enr.client
      form3.Label7.Caption:=Enr.nom;
      form3.Label9.Caption:=Enr.adr;
      form13.Close;
    end;
    @+ Phil
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  17. #17
    Membre actif
    Inscrit en
    Juin 2008
    Messages
    324
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 324
    Points : 217
    Points
    217
    Par défaut salut.
    salut .
    merci anapurna pour vos idées brillantes,je trouve que c'est plus sympa ,
    j'essayerais puis je vous rapele.
    un trés grands merci à toute l'équipe developpez .
    cordialement rec82.

  18. #18
    Membre actif
    Inscrit en
    Juin 2008
    Messages
    324
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 324
    Points : 217
    Points
    217
    Par défaut salut
    salut
    merci à tout .enfin j'ai compris la solution de Andry et j'ai basculé vers.
    j'ai fait comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    procedure TOvrire.SpeedButton1Click(Sender: TObject);
    begin
    IF form2.ShowModal=mrok then
       edit1.Text:=module1.T1.fieldbyname('numero').AsString;
    end;
    et dans form2 j'ai placé un dbgrid et une bitbtn et je met sa propriéte Modalresult à mrOK
    et ça marche.
    cordialement rec82

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

Discussions similaires

  1. choix d'evenement pour dbgrid
    Par alili mostafa dans le forum Bases de données
    Réponses: 4
    Dernier message: 15/02/2009, 10h24
  2. [Choix de langage] Pour un convertisseur de fichiers
    Par FredBe dans le forum Langages de programmation
    Réponses: 28
    Dernier message: 13/12/2004, 17h22
  3. Choix du langage pour un logiciel de cryptage ?
    Par Paul-- dans le forum Langages de programmation
    Réponses: 15
    Dernier message: 22/09/2004, 18h27
  4. Choix de technologies pour mon application
    Par Franco dans le forum Java EE
    Réponses: 5
    Dernier message: 21/10/2003, 14h10
  5. [VB6] attendre un événement pour continuer l'exécution
    Par Argonz dans le forum VB 6 et antérieur
    Réponses: 21
    Dernier message: 12/11/2002, 13h08

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