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 :

valider avant de quitter


Sujet :

Bases de données Delphi

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    420
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 420
    Points : 116
    Points
    116
    Par défaut valider avant de quitter
    salut a tous,

    J'aimerai savoir si c'est possible de demander a un utilisateur si il veux enregistrer les mofifications apporter a une table paradox avant de fermer l'application ??

    ex
    si l'enregistrement n'a pas ete fait avant le clic sur le bouton fermer

    Clic sur le bouton fermer

    ------> message "enregistrer"
    ------>Oui ------> Sauvegarde
    ------>Non ------> quitter


    merci pour votre aide

  2. #2
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 901
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 901
    Points : 6 026
    Points
    6 026
    Par défaut
    Oui, c'est possible, mais tu attends quoi ?

    Le code du MessageDlg ou le code pour commiter les modifs en base ?
    "Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet)
    -----------------------
    Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MP
    Usus magister est optimus

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    420
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 420
    Points : 116
    Points
    116
    Par défaut
    salut,

    ce que j'attend c'est ce que je doit ecrire pour que cela ce fasse

    je pense qu'il faut que je fasse sur l'evenement onclic du bouton "fermer" pour que la fenetre d'alerte s'affiche, puis a partir de la fenetre dire que si c'est ok alors les modif seront enregistrer si c'est "non" alors on fermera l'appli mais comment tester pour savoir si le bouton "sauvegarder" n'as pas ete actionner juste avant le bouton "fermer"

    merci pour ton aide

  4. #4
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 901
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 901
    Points : 6 026
    Points
    6 026
    Par défaut
    1/ déclare une variable globale :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var sauvegardeFaite:boolean;
    2/ Dans le Create de ta form principale:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sauvegardeFaite:=false;
    3/ Dans le OnClick du bouton Sauvegarde:
    4/ Dans le OnDestroy de ta form principale:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if not sauvegardeFaite then
      if MessageDlg('Les dernières modifications ne sont pas enregistrées.'+
       ' Voulez-vous les enregistrer?',mtWarning,[mbOk,mbCancel],0,mbOk)=mrOk then boutonSauvegardeClick(nil);
    "Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet)
    -----------------------
    Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MP
    Usus magister est optimus

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    420
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 420
    Points : 116
    Points
    116
    Par défaut
    merci pour ton aide,

    j'ai modifier un peux ce que tu m'as donner

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if not sauvegardeFaite then
      if MessageDlg('Les dernières modifications ne sont pas enregistrées.'+
       ' Voulez-vous les enregistrer?',mtWarning,[mbOk,mbCancel],0) = mrOk then ValiderClick(nil);
    car j'avais un message d'erreur comme quoi il avait trop d'argument et en recherchant dans les tuto du forum j'ai vu que mbOk situer apres le 0 ne paraissant pas.

    Et j'ai mis la condition dans l'evenement onClick du bouton fermer car en onDestroy ça marchais pas.et je sais pas pourquoi

    Quoi qu'il en soit , un grand merci pour ton aide

  6. #6
    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
    il y a aussi une autre possibilité

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    if LATable in [dsInsert,dsEdit] then
    begin
      if Messagedlg('Voulez vous enregistrer les dernieres modifications ?',mtConfirmation,[mbYes,mbNo],0) = mrYes then
      begin
        LaTable.Post;
      end
      else
        LaTable.Cancel;
    end;
    Modérateur Delphi

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

  7. #7
    Membre expert
    Avatar de TicTacToe
    Inscrit en
    Septembre 2005
    Messages
    1 940
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 940
    Points : 3 575
    Points
    3 575
    Par défaut
    Attention, je ne sais pas si tu as saisis le truc.

    Pendant l'utilisation de ton application, les données sont en générale 'enregistrées' ou postées en temps réel.

    Le moment ou tu peux valider ou annuler tes posts, c'est lorsque tu es en édition sur un enregistrement. (code de Malatar)
    D'ailleurs, c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LaTable.State in [ dsInsert, dsEdit ]
    qu'il faut mettre

    Je dis ca, car je vois dans ta question 'modifications sur la table'.

    Je ne sais pas comment tu effectues tes modifications sur la table, ni quelle base tu utilises, mais en général, au moment de quitter ton appli, tout est déjà posté. Donc pas d'annulation possible. Ce n'est pas comme un fichier Excel, ou tout est temporaire, puis enregistré d'un coup sur une action 'sauvegarde'.

    Par contre, au moment de la validation d'un enregistrement, tu peux utiliser l'evt TTable.BeforePost, pour abandonner ou poster l'enreg.

    Ca sert peut être à rien ce que je dis si tu as une bonne connaissance sur BD, sinon c'est une info que tu dois prendre en compte

    bon courage !
    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 ;-)

  8. #8
    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 TicTacToe
    D'ailleurs, c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LaTable.State in [ dsInsert, dsEdit ]
    qu'il faut mettre
    Modérateur Delphi

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

  9. #9
    Membre confirmé Avatar de JustMe
    Inscrit en
    Juillet 2002
    Messages
    479
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 479
    Points : 593
    Points
    593
    Par défaut
    Si tu veux un simple avis tu peux faire ça OnCloseQuery de ta form
    <On fait la science avec des faits, comme on fait une maison avec des pierres : mais une accumulation de faits n'est pas plus une science qu'un tas de pierres n'est une maison> **Poincaré**

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    420
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 420
    Points : 116
    Points
    116
    Par défaut
    merci a tous pour votre aide qui m'es plus que precieuse
    et pour toute vos idées

    vous etes genial et tres sympa

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

Discussions similaires

  1. Enregistrer avant de quitter !<demande d'avis>
    Par diden138 dans le forum Delphi
    Réponses: 4
    Dernier message: 16/11/2006, 21h44
  2. Réponses: 3
    Dernier message: 11/08/2006, 10h08
  3. Validation avant supprression
    Par michaelbob dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 05/10/2005, 11h58
  4. Valider avant execution fonction
    Par jeff37 dans le forum ASP
    Réponses: 3
    Dernier message: 08/09/2004, 12h39

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