OVH Cloud OVH Cloud

Comment utiliser Form_Unload(Cancel ???

13 réponses
Avatar
surfeur75
Bonjour,

J'ai un problème avec la procédure
Form_Unload(Cancel As Integer)
et les touches système (croix rouge) et (<Alt>+<F4>)

Ce que je voudrais faire c'est gérer la fermeture de la feuille
vis-à-vis
des commandes systèmes sus-citées.
Alors pour interdire à la forme de se fermer, il suffit de mettre cancel
à -1,
le problème, c'est qu'après, la form ne se ferme plus jamais car je n'arrive
pas à remettre le cancel local à 0 dans Form_Unload...

En gros je voudrais
dim x As Byte
Form_Unload(Cancel As Integer)
If x = 1 Then Cancel = 0 ' on ferme par le système la form
If x = 2 Then Cancel = (-1) ' on NE ferme PAS par le système la form
End Sub

Il y a peut être une possibilité en associant un "fonction", mais je manie
trop mal le passage de paramètres pour y arriver, pouvez-vous m'aider,
avez-vous une solution ?
--
@+, bye, Joe.
Pour m'écrire ng75AROBASEnoosPOINTfr
remplace AROBASE et POINT par leur vrai signe
Il l'a fait car il ne savait pas que c'était impossible, alea jacta est!

3 réponses

1 2
Avatar
Pierre Alexis [MVP]
Salut Patrice,

Tu as écrit :

Pourquoi le premier serait plus rapide ?
A mon avis dans
If Condition=true then
il y évaluation de Condition, évaluation de la constante True, comparaison
des deux qui renvoie un booléen.
Dans
If condition then
Il y a évaluation de condition qui renvoie un booléen.
Mais peut-être que quelque chose m'échappe.



Ton raisonnement est tout à fait correct... La deuxième solution (If condition
then) est bien plus rapide.

Et à mon avis Zoury a inversé les deux dans son message.. ;-)

--
Pierre ALEXIS - MVP Visual Basic
Courriel & messenger :
FAQ Visual Basic : http://faq.vb.free.fr/
Avatar
Patrice Henrio
Pourquoi le premier serait plus rapide ?
A mon avis dans
If Condition=true then
il y évaluation de Condition, évaluation de la constante True, comparaison
des deux qui renvoie un booléen.
Dans
If condition then
Il y a évaluation de condition qui renvoie un booléen.
Mais peut-être que quelque chose m'échappe.

"Zoury" <yanick_lefebvre at hotmail dot com> a écrit dans le message de
news:
Salut Patrice! :O)

> Pourquoi écrire
>
> if Condition=true then
>
> au lieu de
>
> if Condition then


bien que j'utilise abondamment le premier (qui est plus rapide si mes
souvenirs sont exactes), le deuxième est tout de même très utilisé dans le
milieu pour des raisons de clareté de code... ;O)

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/

Merci de poster les réponses au groupe afin d'en faire profiter à tous
> "surfeur75" a écrit dans le message de
> news:%
> > Bonjour, merci à tous, en mélangeant un peu vos infos, j'ai
> trouvé,
> > voici ce que j'ai fait:
> >
> > KeyPreview = True
> > Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
> > If KeyCode = vbKeyF4 And (Shift And vbAltMask > 0) Then
> > If condition = True Then KeyCode = 0...
> > End If
> > End Sub
> >
> > Sub Form_Unload(Cancel As Integer)
> > Cancel = 0
> > If condition = True Then Cancel = -1...
> > End Sub
> > --
> > @+, bye, Joe.
> > Pour m'écrire ng75AROBASEnoosPOINTfr
> > remplace AROBASE et POINT par leur vrai signe
> > Il l'a fait car il ne savait pas que c'était impossible, alea jacta


est!
> >
> >
> > "surfeur75" a écrit dans le message de news:
> >
> > > Bonjour,
> > >
> > > J'ai un problème avec la procédure
> > > Form_Unload(Cancel As Integer)
> > > et les touches système (croix rouge) et (<Alt>+<F4>)
> > >
> > > Ce que je voudrais faire c'est gérer la fermeture de la feuille
> > > vis-à-vis
> > > des commandes systèmes sus-citées.
> > > Alors pour interdire à la forme de se fermer, il suffit de mettre
cancel
> > > à -1,
> > > le problème, c'est qu'après, la form ne se ferme plus jamais car je
> > n'arrive
> > > pas à remettre le cancel local à 0 dans Form_Unload...
> > >
> > > En gros je voudrais
> > > dim x As Byte
> > > Form_Unload(Cancel As Integer)
> > > If x = 1 Then Cancel = 0 ' on ferme par le système la form
> > > If x = 2 Then Cancel = (-1) ' on NE ferme PAS par le système la
form
> > > End Sub
> > >
> > > Il y a peut être une possibilité en associant un "fonction", mais je
> manie
> > > trop mal le passage de paramètres pour y arriver, pouvez-vous


m'aider,
> > > avez-vous une solution ?
> > > --
> > > @+, bye, Joe.
> > > Pour m'écrire ng75AROBASEnoosPOINTfr
> > > remplace AROBASE et POINT par leur vrai signe
> > > Il l'a fait car il ne savait pas que c'était impossible, alea jacta
est!
> > >
> > >
> > >
> > >
> >
> >
>
>




Avatar
Zoury
> Et à mon avis Zoury a inversé les deux dans son message.. ;-)



On ne peux plus exact mon Sherlock! ;O)

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/

Merci de poster les réponses au groupe afin d'en faire profiter à tous
1 2