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 :

Fermeture automatique d'une Form


Sujet :

Langage Delphi

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8
    Points : 1
    Points
    1
    Par défaut Fermeture automatique d'une Form
    Bonjour,

    J'ai récuperé et modifié un code progressBar qui se ferme automatiquement, il fonctionne tres bien. Mais quand je l'integre dans mon programme initial, il ne se ferme plus automatique.

    J'ai essayer diverse méthode mais je n'y arrive pas.

    Avec ce code, ça ne se ferme pas automatiquement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
            with TMyProgressBar.Create(nil) do
            try
                    ShowModal;
            finally
                    close;
            end;
    et avec celui ci, la fenetre s'ouvre et met une erreur à sa fermeture :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    var
      Mafenetre : TMyProgressBar;
    begin
      Mafenetre := TMyProgressBar.Create(Application); 
      Mafenetre.Show;
      Mafenetre.close;
    Il existe peu etre une autre methode pour executé mon progressbar?

  2. #2
    Rédacteur

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 79
    Points : 355
    Points
    355
    Par défaut
    Salut,
    essaye Mafenetre.terminate, au lieu de maFenetre.close .

    A+

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    j'ai essay, mais mon delphi n'accept pas cette commande :

    'undeclared indentifier : 'terminate'

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    je vous met le message d'erreur que j'ai quand la fenetre essaye de se fermer :

    ... Class EInvalideOperation with message : 'Cannot change visible in onShow or Onhide'

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 560
    Points : 576
    Points
    576
    Par défaut
    Bonjour

    Si vous tapez
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
         with TMyProgressBar.Create(nil) do
            try
                    ShowModal;
            finally
                    close;
            end;
    il es normale que la fenêtre ne ferme pas. ShowModal ouvre la fenêtre et attent que la fenêtre se ferme pour continuer. La fermeteure (close) a donc automatiquement lieu quand la fenêtre à été Fermer.

    Si vous taper
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    with TMyProgressBar.Create(nil) do
            try
                    ShowModal;
            finally
                    close;
            end;
    Vous devriez juste ouvrire et IMEDIATEMENT fermer la fenêtre.

    Cela en théorie.

    Votre erreure me parrait bizar. Elle resemble à des erreure que j'ai eu en essayant de changer un show en showmodal avec un forme ouverte.
    Esayer en mettant "Sleep(1000);" sur la ligne avant close. Cela différera le close de 1 seconde et permettra de voir si la fenêtre n'a pas finit de s'ouvrire avant d'exécuté le close. (se serait étonant mais ...)

  6. #6
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Je pense pas que le probleme vienne de la fermeture de Tmyprogressbar, car je peu le fermer manuellement par la croix, c'est vraiment juste la fermeture automatique qui pose probleme. Soit ça ne fait pas, soit il y a le message d'erreur.
    Je pense que c'est ma fonction que le lance qui est mauvaise.

  7. #7
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut
    Salut
    Et si tu mettais juste ShowModal?
    genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    with TMyProgressBar.Create(nil) do
            try
                    ShowModal;
            finally
                    Release;
            end;
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

  8. #8
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Toujours pas

  9. #9
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut
    Citation Envoyé par byboleymar
    Toujours pas
    A quel moment dans le code de la TProgressForm, y a-t-il
    ModalResult := mrQQChose;
    ?
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

  10. #10
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    nul part
    Cela a son importance?

  11. #11
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut
    Citation Envoyé par byboleymar
    nul part
    Cela a son importance?
    Ben disons que normalement c'est grâce à ça que ta fiche se ferme
    Que fais cette fiche? Elle se lance, il y a un ProgressBar (vu le nom ) Et après? A la fin du ProgressBar, elle doit se refermer toute seule? Dans ces cas-là, il doit forcément y avoir ce code quelque part
    A la limite, s'il n'est pas trop long, tu peux poster le code de cette fiche stp ?
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

  12. #12
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Pour resumé, voila 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
     
    procedure TMyProgressBar.FormActivate(Sender: TObject);
    var
      i: integer;
    const
      fin = 200000;
    begin
     
      while i < fin do
      begin
     
      .... le code qui permet de faire progresser ma barre 
       et de l'arreter quand on clic sur un boutton....
     
        if Stopped then
                i := fin;
      end;
      close;
    end;
     
    procedure TMyProgressBar.Button1Click(Sender: TObject);
     
    begin
      Stopped := true;
    end;
    actuellement, je doit modifier la procedure 'TMyProgressBar.Button1Click' pour fermer le progressBar :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    procedure TMyProgressBar.Button1Click(Sender: TObject);
    begin
      Stopped := true;
      Button1.Caption := '&Fermer';
      close;
    end;

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 560
    Points : 576
    Points
    576
    Par défaut
    Bonjour,

    Dans votre while, avez cous l'ordre "application.ProcessMessage;" ?

  14. #14
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Oui, effectivement, il y a cette commande. Ce serait cette commande qui poserai le probleme?

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 560
    Points : 576
    Points
    576
    Par défaut
    Bonjour,


    Non il ne pose pas de problème mais il est indispensable. Cela aurait pus expliquer des cas de non fermeture.

    La je ne vois plus que la code dans la boucle.

Discussions similaires

  1. Fermeture automatique d'une console d'un processus
    Par Mustrum_Ridculle dans le forum Visual C++
    Réponses: 2
    Dernier message: 06/03/2008, 14h43
  2. Erreur '2450' à la fermeture automatique d'une base
    Par willich dans le forum Modélisation
    Réponses: 3
    Dernier message: 01/06/2007, 11h13
  3. Réponses: 36
    Dernier message: 23/05/2007, 17h54
  4. fermeture automatique d'une fenêtre.
    Par darkageof62 dans le forum Langage
    Réponses: 8
    Dernier message: 21/05/2007, 11h32
  5. Ajout automatique d'une form
    Par mitch97 dans le forum VB 6 et antérieur
    Réponses: 23
    Dernier message: 27/03/2007, 13h49

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