Form_QueryUnload

Messages postés
8
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
12 février 2007
- - Dernière réponse : crenaud76
Messages postés
4172
Date d'inscription
mercredi 30 juillet 2003
Statut
Membre
Dernière intervention
9 juin 2006
- 9 août 2003 à 00:51
Hello World

salut
Quand je fais Wsockclient.sendData dans l'événement ( Form_QueryUnload ou Form_Unoad ) rien ne se passe au coté client et aussi le serveur. c-a-d y a pas d’envoie. Je vérifie sur le serveur (DataArrival) y arien … !!!
Wsockclient.sendData ne génère aucune erreur chez le client ça veut dire que l’objet winsock est toujours charger.
Comment faire ?
merci.
Afficher la suite 
A voir également:

4 réponses

Messages postés
386
Date d'inscription
samedi 4 octobre 2008
Statut
Membre
Dernière intervention
19 février 2018
2
0
Merci
Bonjour,

Je ne vois pas pk tu le fais dans ces sub? C'est sub servent juste a la fermeture de la form.

Si tu veux le faire dans Unload c'est quand tu fermeras ton programme qu'il y aurat c'est action.

Voila, A++
[Gally Home Corp]
Messages postés
4172
Date d'inscription
mercredi 30 juillet 2003
Statut
Membre
Dernière intervention
9 juin 2006
18
0
Merci
Effectivement c'est un Pb connu, VB anticipe un peu trop dans le QueryUnload, et les contrôles comme le winsock sont comme figés et ne réagisse plus bien ....
En fait, c'est ton client qui n'envois plus de données ...
SI tu veux tester, met un "Cancel=False" en 1ere ligne de ton QueryUnload(); Tu verras que ton SendData fonctionne (Mais tu ne pourras plus fermer ta fenêtre.
Il faut donc trouver une autre solution : Placer le SendData dans le code du bouton ou du menu "Fermer" de ta form, et empêcher tout autre mode de fermeture de la fenêtre.
Ou alors, essaye en mettant une grande temporisation dans ton QueryUnload (En entrant ds le Queryunload, tu fixe Cancel à True, tu fais ton SendData, tu fais ta tempo, tu remet Cancel = 0 et) cela résoudra peut-être le Pb mais c'est un peu capilo-tracté, je reconnais .......
Christophe R.
Messages postés
8
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
12 février 2007
0
Merci
Hello World

Merci crenaud76.
Ca veut dire quoi exactement une grande temporisation ( Timer) ? si c'est autre chose dit le moi svp.
cordialement :)
Messages postés
4172
Date d'inscription
mercredi 30 juillet 2003
Statut
Membre
Dernière intervention
9 juin 2006
18
0
Merci
Essaye avec cette API

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Dans le Code tu fait "Sleep 4000" par exemple (4s c'est court pour nous,mais pour un processeur, c'est presque une éternité)

Chez moi, il faut une pose de 4 s pour que le SendData passe : à 3 secondes, il est encore perdu ...

Christophe R.