Fermer mon prg d'un seul coup

cs_jeanlucsl Messages postés 16 Date d'inscription vendredi 21 janvier 2005 Statut Membre Dernière intervention 18 février 2005 - 26 janv. 2005 à 19:55
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 - 28 janv. 2005 à 08:48
salut a tous
mon pb est le suivant: lorsque je clique sur la croix de windows pour fermer mon pgr, en fait il ne me ferme que la fenêtre presente et je suis obligé de cliquer sur cette maudite croix pour toutes les fenêtre ouverte.
ma question est: comment faire pour que le prg se ferme en une seule fois avec un msg du style ¨"êtes vous sur bla bla bla ...."
Si qqun peut m'aider merci

9 réponses

hhhp2004 Messages postés 173 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 13 octobre 2007
26 janv. 2005 à 20:28
hhhp2004

salut,

il faut mettre le code dans levenement Unload du Form !

par exemple

Private Sub Form_Unload(cancel as integer)
if msgbox("Vous voulez vraiment quitter ?")=vbyes then
unload me
unload form2
unload form3
...
else
'lutilisateur ne veut pas quitter
cancel=1
end if
End sub

'une autre methode serait
'dim maForm as Form
'for each maForm in forms
'unload MaForm
'next
0
metalcoder Messages postés 193 Date d'inscription jeudi 14 février 2002 Statut Membre Dernière intervention 25 mars 2011 1
26 janv. 2005 à 21:58
Ou ca ...

Private Sub Form_Unload(Cancel As Integer)
If MsgBox("Vous voulez vraiment quitter ?", vbQuestion + vbYesNo) = vbYes Then
End
Else
Cancel = 1
End If

End Sub

@+
Metalcoder
0
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
26 janv. 2005 à 22:28
Mort à l'instruction "End", et vive le dernier code de hhhp2004

Christophe R
0
cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 9
27 janv. 2005 à 13:25
>> crenaud76 : Pourquoi ca "vive le dernier code de hhhp2004"

It@li@
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
27 janv. 2005 à 14:14
ITALIA << Parce qu'il n'utilises pas "End" ! Et qu'il ferme son appli VB correctement !!

Christophe R
0
metalcoder Messages postés 193 Date d'inscription jeudi 14 février 2002 Statut Membre Dernière intervention 25 mars 2011 1
27 janv. 2005 à 22:00
Je comprends pas ce que tu reproche a l'instruction "end". Il est évident que si l'on veut bien quitter un programme il faut mettre a nothing les déclarations, fermer les fichiers ouverts ou base de donnée mais l'instruction "End" reste pour moi la façon la plus simple pour quitter un programme.

De plus je ne veut pas être médisant mais j'ai regarder tes sources et aucune n'as l'instruction "End" (ce qui est logique par rapport a ton message) mais aucune également aucune n'utilise les unload et autre astuces, d'ailleurs tes programmes se quittent uniquement par la croix.

J'aimerais bien que tu nous explique ta véritable raison de ne pas utiliser "End"

@+
Metalcoder
0
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
27 janv. 2005 à 23:00
"End" est censé faire tout proprement mais en fait, il est parfois mis en défaut !!
Il lui arrive de ne pas bien libérer la mémoire alloué à des objets, ... et il lui arrive même parfois de laisser des fichiers ouvert !
C'est un pb relativement peu connu mais pourtant réel !! C'est pourquoi je ne lui fait pas, ou du moins plus confiance, et que je fait les choses par moi-même, quand il y en a besoin !!
Tu dis que mes sources ne se ferme que par la croix, et tu as sans doute raison ! Mais deux ou trois remarques à ce sujet : les sources que j'ai déposé içi ne sont que des bouts de code répondant à un pb précis, donc rien de vraiment finalisé ! Il s'agit plus de portion de code réutilisable. Ensuite, quand l'utilisateur clique sur la croix, Windows fait les choses proprement (du moins il essaye, car "La fuite mémoire" est un malaise connu de Windows !), en tout cas mieux qu'un End.
Attention ! Je ne dis aps que End ne fait JAMAIS correctement son boulot ! Mais comme personne n'a jamais été capable de me dire quand et comment identifier les cas ou il se lourde (même au sein du support Microsoft France), je préfère ne jamais l'utiliser !
Pour en finir avec mes sources : Mes vrais sources, celle que je ne peux partager avec vous, car elle ne sont pas ma propriété mais celle de mon boss pour qui je les ai développé, elle ne comporte aucun End mais une boucle sur la collection forms, une routine de destruction de toute les instances d'objet, ou une routine de fermeture des fichiers ouverts !
Voila, je m'arrête la !

Christophe R

P.S. : Ce qui ont déjà mes messages, savent que je suis en croisade contre le "End" ... et pour les instructions "...$" ... disons que ce sont mes chevaux de bataille !
0
metalcoder Messages postés 193 Date d'inscription jeudi 14 février 2002 Statut Membre Dernière intervention 25 mars 2011 1
28 janv. 2005 à 00:30
Je me doutais bien que tes sources etaients des "exemples" mais j'avais envie de te l'entendre dire. La ou je ne suis qu'a moitié d'accord c'est que justement personne n'as rellement réussi a démontrer que "End" faisait mal son boulot. Mon opinion a moi serait de liberer avant la fermeture, les différents objets déclarés, fermer les fichiers et autres bases, pour ensuite faire le "end".
Mais comme on est la aussi pour apprendre, je vais essayer ta facon dans mes prochains softs.

@+
Metalcoder
0
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
28 janv. 2005 à 08:48
"personne n'as rellement réussi a démontrer que "End" faisait mal son boulot" .... En fait ce serait plutot : On sait que "End" fait parfois mal son boulot, mais perssone n'a reellement réussi à dire pourquoi et dans quel contexte il se plante !!!

Christophe R
0
Rejoignez-nous