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

 Delphi Discussion :

libérer une forme un seul clique


Sujet :

Delphi

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 17
    Points : 13
    Points
    13
    Par défaut libérer une forme un seul clique
    salut à tous
    je suis un débutant en delphi
    j'ai réalisé mon premier projet en delphi en utilisant interbase
    mais un problème est survenu lors du fonctionnement du Programme
    lorsque j'affiche une forme ( l'enregistrement en cours est en mode édition ) :
    Une fois je clique sur <ok> : les modifications sont enregistrées et la forme se libère, Mais , pour annuler les modifications je dois cliquer 2 FOIS sur annuler mais non pas une seul fois comme <ok>, je ne sais pas pourquoi
    à l'aide s.v.p
    Merci !

  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
    Question trop vague sans un bout de code de ce qu'il y a dans ton bouton (voir le paramétrage de ton bouton aussi)
    Modérateur Delphi

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

  3. #3
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Points : 1 031
    Points
    1 031
    Par défaut
    idem que rayek; quel type de boutton ( bitbutton ou autres......) et votre code...?

  4. #4
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 17
    Points : 13
    Points
    13
    Par défaut
    Voilà le code :
    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
    procedure TForm1.sBitBtn2Click(Sender: TObject);
    var FormAjIn : TForm5;
     
    begin
    ibdataset_intervention.open;
    ibdataset_intervention.Append;
    ibdataset_intervention.Edit;
    i := IBDataset_intervention.FieldByName('ID_INTER').Asinteger;
    IBDataset_interv_arti.Open;
    IBDataset_interv_arti.append;
    IBDataset_interv_arti.edit;
    form1.IBDataset_interv_arti.FieldByName('ID_INTER').Asinteger := i ;
    FormAjIn := TForm5.create(NIL);
    if FormAjIn.ShowModal = MrOk then
       begin                                                                                 ibdataset_intervention.FieldByName('DATE_INTER').AsDateTime :=
             FormAjIn.DateTimePicker1.DateTime;
             ibdataset_intervention.post;
             ibdataset_intervention.close;
             ibdataset_intervention.open;
             IBDataset_interv_arti.Open;
             IBDataset_interv_arti.close;
             ibtransaction_maintenance.CommitRetaining;
      end
              else
                   if FormAjIn.ShowModal = MrCancel then
                        begin
                           ibtransaction_maintenance.RollbackRetaining;   ibdataset_intervention.close;                                                                 ibdataset_intervention.open;                                                                 IBDataset_interv_arti.close;                                                             IBDataset_interv_arti.Open;                                                                   FormAjIn.Release;
                        end ;
    end;

  5. #5
    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
    Ok normal en fait, si tu fait appel a ShowModal il va réouvrir la form

    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
    34
    35
    36
    37
    38
    39
     
    procedure TForm1.sBitBtn2Click(Sender: TObject);
    var FormAjIn : TForm5;
     
    begin
    ibdataset_intervention.open;
    ibdataset_intervention.Append;
    // Append ou Edit; les deux en meme temps ca sert a rien
    // append créé une nouvelle ligne et la laisse en mode edit
    //ibdataset_intervention.Edit;
    i := IBDataset_intervention.FieldByName('ID_INTER').Asinteger;
    IBDataset_interv_arti.Open;
    IBDataset_interv_arti.append;
    // Idem 
    // IBDataset_interv_arti.edit;
    form1.IBDataset_interv_arti.FieldByName('ID_INTER').Asinteger := i ;
    FormAjIn := TForm5.create(NIL);
    case FormAjIn.ShowModal of
      MrOk: begin
          ibdataset_intervention.FieldByName('DATE_INTER').AsDateTime :=          FormAjIn.DateTimePicker1.DateTime;
          ibdataset_intervention.post;
          ibdataset_intervention.close;
          ibdataset_intervention.open;
          IBDataset_interv_arti.Open;
          IBDataset_interv_arti.close;
          ibtransaction_maintenance.CommitRetaining;
      end;
      MrCancel : begin
        ibtransaction_maintenance.RollbackRetaining;
        ibdataset_intervention.close;
        ibdataset_intervention.open;
        IBDataset_interv_arti.close;
        IBDataset_interv_arti.Open;
      end ;
    end; // case
     
    FormAjIn.Release;
     
    end;
    ca devrait mieux fonctionner comme çà
    Modérateur Delphi

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

  6. #6
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 17
    Points : 13
    Points
    13
    Par défaut
    ça marche parfaitement
    MERCI RAYEK POUR VOTRE AIDE

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

Discussions similaires

  1. Ouvrir une form a partir dun double clique sur datagrid
    Par moonshine972 dans le forum Windows Presentation Foundation
    Réponses: 20
    Dernier message: 21/04/2011, 11h58
  2. Problème de double clique sur barre de titre d'une form
    Par kheldoun ahmed dans le forum Delphi
    Réponses: 10
    Dernier message: 26/06/2007, 16h21
  3. changer la couleur des label avec une seul clique
    Par aliwassem dans le forum Delphi
    Réponses: 4
    Dernier message: 18/10/2006, 22h27
  4. [VB.NET] Activer une form une seul fois
    Par BenoitM dans le forum Windows Forms
    Réponses: 4
    Dernier message: 14/02/2006, 14h44
  5. Libérer une form, pb memoire pas totalement rendu.
    Par flash dans le forum Composants VCL
    Réponses: 4
    Dernier message: 07/10/2004, 14h43

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