Fermer une fenêtre de form

Résolu
Signaler
Messages postés
23
Date d'inscription
mardi 10 janvier 2006
Statut
Membre
Dernière intervention
13 février 2006
-
Messages postés
1606
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
25 juillet 2014
-
Salut,

J'ai créer un programme de rapport d'erreurs,je voudrais qu'à la fin du
code la fenetre du code (form) se ferme automatiquement sans avoir a
cliquer sur quoi que ce soit.

Est-ce que quelqu'un aurait une idée ?

13 réponses

Messages postés
1606
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
25 juillet 2014
12
salut,

si j'ai bien compris tu voudrais que ton programme se ferme
automatiquement dans ce cas à la fin du traitement tu mets
Application.terminate;



@+

jlen
Messages postés
1606
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
25 juillet 2014
12
-->cirec delphi autorise l'uitilsation de Application.terminate voici ce que dit l'aide:

Syntaxe Delphi :



procedure Terminate;



Description



Appelez Terminate pour terminer par programme l'exécution d'une
application. En appelant Terminate au lieu de libérer l'objet
application, vous permettez à l'application de s'arrêter d'une manière
plus ordonnée.



Terminate appelle la fonction PostQuitMessage de l'API Windows pour
effectuer la fermeture de l'application. Terminate n'agit pas
immédiatement.



Terminate est appelée automatiquement quand il y a un message WM_QUIT ou quand la fiche principale est fermée.



il me semble que dans ce cas c'est la meilleure façon bien que form.close fasse la même chose



@+

jlen
Messages postés
23
Date d'inscription
mardi 10 janvier 2006
Statut
Membre
Dernière intervention
13 février 2006

Super ça marche !

Merci pour ton aide

@+++
Messages postés
3826
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
10 mai 2021
46
je pensais qu'il ne fallait pas appeler directement Application.Terminate , pour fermer une form l'instruction Close suffit amplement elle ferme la form courrente et si c'est la form principale dans ce cas c'est l'application qui se ferme

@+
Cirec
Messages postés
3826
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
10 mai 2021
46
ah , encore une chose d'appris, je doit confondre avec autre chose puisqu'il me semblait que Terminate n'appelait pas l'évenement OnClose de la Form. Mais il est claire que je suis dans l'erreur.
Merci à toi jlen pour l'information

@+
Cirec
Messages postés
1606
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
25 juillet 2014
12
pas de quoi.

Chaque jour on apprend tous quelque chose sur ce site!!

je pense que tu confonds avec la methode destroy ou la methode Free (aide delphi:

N'appelez jamais Application.Destroy ou Application.Free. Utilisez à
la place la méthode Terminate de l'application pour terminer
l'application.







@+

jlen
Messages postés
3826
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
10 mai 2021
46
Oui c'est possible, il me restait un bout d'information dans la tête, mais j'ai fait une mauvaise association avec.
On a pas fini d'en apprendre et dans tous les domaines et tout au long de notre vie ça au moins j'en suis sûr

@+
Cirec
Messages postés
1606
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
25 juillet 2014
12
pour citer Jean Gabin dans une chanson : à la fin de sa vie "tout ce que je sais c'est que je ne sais rien"



@+

jlen
Messages postés
449
Date d'inscription
lundi 19 avril 2004
Statut
Membre
Dernière intervention
8 avril 2009
2
Otez moi d'un doute, si on fait un Application.terminate dans la form principale d'un prog, le OnClose est bien exécuté, ainsi que les OnClose des forms secondaires ?
Messages postés
3826
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
10 mai 2021
46
Bon

Alors avis à tous ceux qui ont un doute
j'ai fait les testes et Application.Terminate n'appel pas l'évenement OnClose de la Form
Faites le teste vous même si vous mettez dans FormClose un truc du genre SavetoFile où tout autre chose ces commandes là ne seront pas exécutés

@+
Cirec
Messages postés
1606
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
25 juillet 2014
12
Application .Terminate termine l'appliaction en liberant la mémoire et
les thread en cours mais il n' appelle pas les onclose (c'est le
onclose qui appelle de la form principal qui appelle
Application.Terminate) aps plus que le on close de la form principal
appelle le onclose des form secondaires



@+

jlen
Messages postés
3826
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
10 mai 2021
46
ça comfirme donc ce que je disais il est préférable de quitter l'Application avec un simple Close

@+
Cirec
Messages postés
1606
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
25 juillet 2014
12
pour que les onclose de formes secondaires soient appeler il faut les fermer explicitement par formXX.close

@+

jlen