Connexion entre form dans une même application - utilisation messages windows (hooks)

Soyez le premier à donner votre avis sur cette source.

Vue 4 908 fois - Téléchargée 683 fois

Description

Voici un petit code, qui je l'espère, sera utile à tous. Mon pb était le suivant :
Le programme main se déroule (et doit être absolument en dehors de la form), appelle une form pour de la saisie et reprend son cours après avoir récupéré la donnée saisie.

Solution initiale :
Le seul moyen que j'avais trouvé était de faire un hide de la form après la saisie afin de récupérer le texte, sinon la form restait toujours active et le main ne récupérait jamais le texte. La conséquence directe était un effet de "clignotement" de la form car j'accédais souvent à la form pour de la saisie.

Solution proposée dans cet exemple :
Utiliser les messages Windows. Pour ce faire, j'ai retravaillé le code de salazar (ID=29151) et avec les hooks, la form reste toujours active et le main continue son traitement dès réception du message (du texte si vous préférez).

Voilà, l'explication est peut être longue mais le pb n'est pas facile à expliquer.

Conclusion :


Les explications sont décrites ci-dessus

Remerciements à :
- Salazar pour le code qu'il a posté (ID=29151) et dont je me suis inspiré pour résoudre mon pb.
- Christophe (crenaud76) pour son aide sur le pb de son dans la textbox

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

cs_zifnig
Messages postés
16
Date d'inscription
vendredi 10 septembre 2004
Statut
Membre
Dernière intervention
28 mai 2007
-
Je n'ai pas regardé le code, mais une alternative est d'utiliser une feuille non modale, ce qui permet au programme principal de tourner en parallèle => prévoir dans la feuille non modale la saisie successive des paramètres.
bouv
Messages postés
1429
Date d'inscription
mercredi 6 août 2003
Statut
Membre
Dernière intervention
3 mars 2019
-
ok je viens de regarder ta source et j'ai mieux compris ce que tu voulais. Je tournerai ma langue 7 fois ....

Effectivement ta méthode est vraiment très bien.

Je te met 10/10.

Bonne prog
++
cs_freecool
Messages postés
6
Date d'inscription
vendredi 10 octobre 2003
Statut
Membre
Dernière intervention
14 mars 2005
-
Le but de la chose est le suivant et diffère nettement de vos remarques pertinentes :

Programme Main (form 1)
traitements divers
....
boucle de saisie sur form2 champ par champ
appel à form2 pour saisie d'une donnée pour un champ
continuation du main et traitement (action) d'après le champ saisi
.....
fin de boucle
continuation du main avec traitements divers
....
fin du main

voilà en gros l'idée.

Même en mettant des variables communes, la form2 ne rend pas la main au main. De ce fait, la variable commune n'est pas exploitable par le main.
Il faut donc laisser actif la form2 tout en rendant la main au main pour qu'il continue son traitement.

Des suggestions pouvant répondre également à cette problématique ?
bouv
Messages postés
1429
Date d'inscription
mercredi 6 août 2003
Statut
Membre
Dernière intervention
3 mars 2019
-
Ok tu declare dans un module des variables en Public, tu y stock des données.
Et tu peux y acceder depuis n'importe quelle form.
EvilGost
Messages postés
235
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
16 mai 2011
2 -
+1 pour Kazuya

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.