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

Langage Delphi Discussion :

Comment fermer une Fenetre Modal avec Code ?


Sujet :

Langage Delphi

  1. #1
    Membre averti Avatar de Soulama
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2004
    Messages : 619
    Points : 416
    Points
    416
    Par défaut Comment fermer une Fenetre Modal avec Code ?
    Salut,
    jai le Code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    procedure TForm1.ShowDlgClick(Sender: TObject);
    var
      Form2: TForm2;
    begin
      Form2:= TForm2.Create(nil);
      Try
        Form2.ShowModal ;
        ShowMessage('Okay');
      finally
        Form2.free ;
      end ;
    end;
    Dans le OnActivate du Form2 jai le Code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    procedure TForm2.FormActivate(Sender: TObject);
    Begin
      application.ProcessMessages;
      Try
        Info;
      finally
        Close;
      end ;
    end;
    Ma Question:
    Pourquoi lor de lappele du Close dans Form2, il ne ce passe rien ???
    Merci

  2. #2
    Membre éclairé
    Avatar de MD Software
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 613
    Points : 680
    Points
    680
    Par défaut
    Close permet de masquer une fenêtre non modale.
    Pour fermer une fenêtre modal, il faut que tu affectes une valeur à la propriété ModalResult.

  3. #3
    Membre confirmé

    Profil pro
    Inscrit en
    Mars 2005
    Messages
    258
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 258
    Points : 558
    Points
    558
    Par défaut
    Salut


    mets un

    [codeModalResult:= 'mrOK';[/code]

    dans ton close;

    Ou alors mets un Bouton sur ta fiche avec la priété ModalResult à 'mrOK' ou 'mrCancel', c'est comme tu veux le tout est de donner une autre valeur à ModalResult que mrNone...

    A plus...

  4. #4
    Membre averti Avatar de Soulama
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2004
    Messages : 619
    Points : 416
    Points
    416
    Par défaut
    Salut,
    jai essaye le Code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    procedure TForm2.FormActivate(Sender: TObject);
    Begin
      application.ProcessMessages;
      Try
        Info;
      finally
        ModalResult:= MrOk;
      end ;
    end;
    il ne se passe toujour rien !!!

  5. #5
    Membre éclairé
    Avatar de MD Software
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 613
    Points : 680
    Points
    680
    Par défaut
    C'est normal, tu es dans l'évènement onActivate. Il ne faut pas que tu affectes une valeur au ModalResult dans un évènement de ce style.

  6. #6
    Membre confirmé

    Profil pro
    Inscrit en
    Mars 2005
    Messages
    258
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 258
    Points : 558
    Points
    558
    Par défaut
    Oui mets le dans un évènement de fermeture de fenêtre c-à-d dans ton OnClose ce serait bien...

  7. #7
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    Normal il faut un close aussi

  8. #8
    Membre éclairé
    Avatar de MD Software
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 613
    Points : 680
    Points
    680
    Par défaut
    Citation Envoyé par Clorish
    Normal il faut un close aussi

  9. #9
    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 770
    Points
    2 770
    Par défaut
    tu veux afficher ta forme modal , afficher votre info puis férmer sans l'aide de l'utilisateur, c'est sa
    alors plutot soit utilisé un timer soit un postmessage, dans l'un ou l'autre ajoute: ou une autre valeur >0
    n'apel pas free apel plutot release
    pour moi je crée dans la fenétre modal une function comme
    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
     
    //la c'est une forme qui retourn un date et contient qu'une TMonthCalendar
    var
      Form7: TForm7;
    Function  GetDates(var d:TDateTime):integer;
    implementation
     
    {$R *.dfm}
    var dat:TDateTime;
    Function  GetDates;
    begin
         dat:=d;
         Form7:= TForm7.Create(application);
         result:= Form7.ShowModal;
         if result=1 then d:=dat ;
         Form7.Release ;
    end;
    procedure TForm7.MonthCalendar1DblClick(Sender: TObject);
    begin
         dat:=MonthCalendar1.Date ;
         modalresult:=1;
    end;

  10. #10
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    ha bon.
    autant pour moi .... Mais il faut pas faut un close quand meme pour fermer la fiche ?
    Je pensais que le close etait court circuite tant que ModalResult n'est pas affecté ... genre avec un CanClose.

  11. #11
    Membre éclairé
    Avatar de MD Software
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 613
    Points : 680
    Points
    680
    Par défaut
    Citation Envoyé par Clorish
    ha bon.
    autant pour moi .... Mais il faut pas faut un close quand meme pour fermer la fiche ?
    Je pensais que le close etait court circuite tant que ModalResult n'est pas affecté ... genre avec un CanClose.
    L'affectation d'une valeur positive à ModalResult provoque le retour de la fonction ShowModal et le masquage [pas la destruction] de la fenêtre.

  12. #12
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    Oki merci ... c bon a savoir

  13. #13
    Membre averti Avatar de Soulama
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2004
    Messages : 619
    Points : 416
    Points
    416
    Par défaut
    ca ne marche toujour pas !!!
    Je crois, pour fermer une Fenetre Modal, il faut un User Click.
    Paceque jai mis un TButon sur la Fiche avec un OnClick Event qui a pour Code: ModalResult:= MrOk et ca a marché.
    si je fais ModalResult: MrOk sans le Button ca ne donne auqun effet ???.
    Mon But c de faire une Fenetre Modal pendant un Traitement Long, et apres le traitement, la Fenetre Modal doit appeler Self.Close automatiquement.

  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 770
    Points
    2 770
    Par défaut
    Citation Envoyé par edam
    tu veux afficher ta forme modal , afficher votre info puis férmer sans l'aide de l'utilisateur, c'est sa
    alors plutot soit utilisé un timer soit un postmessage, dans l'un ou l'autre ajoute: ou une autre valeur >0
    n'apel pas free apel plutot release

  15. #15
    Membre averti Avatar de Soulama
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2004
    Messages : 619
    Points : 416
    Points
    416
    Par défaut
    Non ca ne marche toujour pas.
    jai essaye mais apres le release, ya la Fiche1 qui perd le Focus pour toujour
    ???
    tu vien ou du maroc

  16. #16
    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 770
    Points
    2 770
    Par défaut
    fes je bosse a casa et toi???
    tu as utilisé un timer ou qoi exactement
    donne votre code

  17. #17
    Membre averti Avatar de Soulama
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2004
    Messages : 619
    Points : 416
    Points
    416
    Par défaut
    moi suis de Kenitra.
    Bon pour le Code je vais faire autrement, car je ne vois pas de Soluce,
    jai essayé beacoup de Combination, mais le Programm oubien il plante
    oubien il ne se passe rien.
    Merci a tous

  18. #18
    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 770
    Points
    2 770
    Par défaut
    a prpos ta fiche modal n'est pas crée par hasar au démarage voir dans le projet.dpr

  19. #19
    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 770
    Points
    2 770
    Par défaut

  20. #20
    Membre averti Avatar de Soulama
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2004
    Messages : 619
    Points : 416
    Points
    416
    Par défaut
    Salut,
    non elle né pas creer dans le code du project.
    oui mais jai procedé autrement.
    A+

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

Discussions similaires

  1. [Swing] fermer une fenetre enfant avec un bouton.
    Par TheSeb dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 23/11/2013, 12h42
  2. Comment fermer une fenetre modale Prototype window
    Par rozierromain dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 28/10/2010, 13h41
  3. comment fermer une fenêtre modale avec le code
    Par Sheriff dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 16/10/2006, 16h36
  4. comment fermer une fenetre enfant
    Par stefane1981 dans le forum MFC
    Réponses: 12
    Dernier message: 20/10/2005, 11h32

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