Read events, clear events !!!!

Résolu
cs_spoutnic_37 Messages postés 48 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 20 septembre 2005 - 7 juil. 2005 à 11:18
cs_spoutnic_37 Messages postés 48 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 20 septembre 2005 - 13 juil. 2005 à 08:44
Aloha ,

Mon probleme est certainement du a une mauvaise utilisation de read events et de clear events .

J'ai accueil.prg (mon main en fait) qui lance une barre de menu, dans celle-ci g mis un read events dans "Affichage\options générales\code du menu final " comme il est conseilé de faire dans la msdn.

le probleme est que si je veux lancer le programme option_avance.prg a partir de la barre les formulaires apparaissent et disparaissent aussi tot.

programme option_avance.prg lancé par un sous menu de la barre.

close table all
do form frm_opt_avance2 name frmOption linked
do form frm_opt_avance_Bis name frmAugmentation linked noshow
do form frm_opt_avance_Ter name frmRentabilite linked noshow
set date to french
*read events

J'ai essayé de mettre un read events a la fin de mon option_avance.prg pour commencer une boucle mais vu que la precedente n'est pas fermer ca ne marche pas, enfin je crois que c pour ca !!!

pourriez vous m'expliqué comment marche ces boucles, et ou devrais'je mettre mes read events et clear events et ainsi eviter la fermeture intempestives de mes formulaires ou de l'applcation elle meme ????

Merci.

8 réponses

Mike Gagnon Messages postés 381 Date d'inscription vendredi 15 octobre 2004 Statut Membre Dernière intervention 24 octobre 2013 2
12 juil. 2005 à 16:47
Après examen plus approfondi de ton code, la sulution numéro 2 est la meilleure pour toi.

Mike Gagnon
3
Mike Gagnon Messages postés 381 Date d'inscription vendredi 15 octobre 2004 Statut Membre Dernière intervention 24 octobre 2013 2
7 juil. 2005 à 19:34
Il faut un read events et un clear events dans ton application. Pas deux.

>>>J'ai accueil.prg (mon main en fait) qui lance une barre de menu, dans celle-ci g mis un read events dans "Affichage\options générales\code du menu final " comme il est conseilé de faire dans la msdn.

Mauvais conseil.

Le read events (le seul) doit etre placé juste apres la dernière chose que tu veux qui se passe avent que l'utilisateur commence à travailler. Donc dans ton cas, enlève celui dans ton menu et laisse celui apres tes formulaires.

Mike Gagnon
0
cs_spoutnic_37 Messages postés 48 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 20 septembre 2005
8 juil. 2005 à 20:01
oui mai sle seul probleme , c'est que ce formulaire n'est pas le programme principal. mon application principale serait en quelque sorte la fenetre foxpro avec la barre de menu. C pour cela que je mets mon read events apres la barre, je lance la boucle des evenements qui se produiront sur la barre , et dans les formulaires lancés par la barre. Dans mon cas, l'appel d'un formulaire quelconque par "do form" dans la barre ne pose pas de probleme, mais l'appel de prog option_avance.prg, lancé par le sous menu, et qui est pourtant composé quasi uniquement de do form lui en provoque !!

alors que dois je faire, mettre les 2 formulaires dans le load du formulaire de premier plan, et appeler le formualire de premier plan par un do form dans la barre (pour eviter le prog option_avance) ???

Est ce que si je fait ca je pourrai bien voir mes objets, entre forms ???

si besoin d'autres explications dites le moi !!
ps: j'utilise visual foxpro 6
0
Mike Gagnon Messages postés 381 Date d'inscription vendredi 15 octobre 2004 Statut Membre Dernière intervention 24 octobre 2013 2
8 juil. 2005 à 21:31
Alors réexplique.
Normallement, si lorsque l'application s'ouvre tu veux qu'elle s'arrete au menu, alors c'est la que doit etre le Read Events, et si te sous-menu (un fois ton application partit) doivent ouvrir des formulaires, il ne faut as mettre d'autre reade events, VFP va te rammener au premier Read events.

Mike Gagnon
0

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

Posez votre question
cs_spoutnic_37 Messages postés 48 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 20 septembre 2005
12 juil. 2005 à 08:56
oui, je suis d'accord, je viens de plancher sur les "read events et clear events" depuis trois jours et j'arrive a la meme conclusion.
Ma barre est mon programme principal donc le read events est positionné apres ca construction, et elle permet de lancer des formulaires ou de .prg.
Mais le probleme, c que le sous menu qui lance une commande "do option_avance.prg" execute se bout de programme, qui contient ( note qu'il n'y a pas de read events):

programme option_avance.prg lancé par un sous menu de la barre.

close table all
do form frm_opt_avance2 name frmOption linked
do form frm_opt_avance_Bis name frmAugmentation linked noshow
do form frm_opt_avance_Ter name frmRentabilite linked noshow
set date to french

Pour des raisons que je ne m'explique pas, toutes les forms ont l'air d'etre créées, mais arrivé a la fin du option_avance.prg, elles disparaissent, et l'application retourne au read events de ma barre de menu.

Pourquoi, cela se passe t'il comme ca ?
Comment puis-je faire pour pouvoir interagire avec mes formulaires ?
pourquoi un sous menu lançant uniquement un do form ... .scx permet d'agire avec le formulaire créé, et pourquoi mon option_avance.prg , n'y arrive pas?

Je suis dans le flou complet avec ce probleme, donc par pitié, AIDEZ MOI!!!!!!
0
Mike Gagnon Messages postés 381 Date d'inscription vendredi 15 octobre 2004 Statut Membre Dernière intervention 24 octobre 2013 2
12 juil. 2005 à 11:31
Premièrement je remarque des noshow, qui indique que tu ne veut pas que les formulaires se montrent?

Au pire aller envoye moi par courriel tes formulaire (en format zip) et
to programme principale, il sera plus facile de déterminer le problème.
(Si possible)

mikegagnon@mcrgsoftware.com

Mike Gagnon
0
Mike Gagnon Messages postés 381 Date d'inscription vendredi 15 octobre 2004 Statut Membre Dernière intervention 24 octobre 2013 2
12 juil. 2005 à 16:27
Ok, j'ai reçu ton application. Et j'ai un question. Pourquoi faire du noshow sur deux formulaires qui n'ont pas assez d'espaces pour etre visible? Pourquoi de pas faire do form au moment que le formulaire est requis?
Pour solutionner ton problème présent, deux solutions possible.

1. Premièrement le terme 'linked' que tu utilise est la cause de ton problème. Linked normalement veut indiquer que ton formulaire est relié à une variable (dans ton cas c'est frmOption pour le premier formulaire), mais le formulaire disparait parce que ta variable perd son scope, puisqu'elle est locale. Si tu n'a pas l'intention de faire appel au méthodes du formulaire par la variable (plutot que formulaire directe), enlève les trois 'linked', et ton premier formulaire va apparaitre et rester.
2. Si tu veut maintenir tes 'linked', alors déclare tes trois variables en publiques ( pas à conseiller, tu devrait utiliser des propriétés du _SCREEN plutot),

close table all


PUBLIC frmOption,frmAugmentation,frmRentabilite


do form frm_opt_avance2.scx name frmOption linked


do form frm_opt_avance_Bis.scx name frmAugmentation noshow


do form frm_opt_avance_Ter.scx name frmRentabilite noshow


set date to french

Mais honnetement j'opterais pour la première solution, puisqu'une variable publique n'est pas une bonne méthode de programmation.

Mike Gagnon
0
cs_spoutnic_37 Messages postés 48 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 20 septembre 2005
13 juil. 2005 à 08:44
Merci beaucoup Mike !!!
0
Rejoignez-nous