Equivalence entre DoEvent de VB6 et C++Builder

didboum Messages postés 1 Date d'inscription mardi 22 septembre 2009 Statut Membre Dernière intervention 5 février 2010 - 5 févr. 2010 à 15:33
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 - 14 févr. 2010 à 17:14
Bonjour,

J'ai une application sous vb6 qui fonctionne mais je dois la transcrire en C++Builder.
Je rencontre un problème car je dois attendre un évènement retour de requete
avant de passer a la suite du programme.
sous vb6 avec DoEvent ça marchait trés bien, mais je ne trouve pas d'equivalent sous C++Builder.

2 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
5 févr. 2010 à 19:26
Jamais on ne "retranscrit" de l'interprété, on se fait un plan du déroulement attendu sur papier et ensuite on referme l'interprété.
Du C++ doit s'écrire en ayant pensé le code POUR C++ donc avec toutes ses possibilités (threads et tout le reste) qui ne sont pas (seulement des ersatz) en interprété.

DoEvents() de VB fait des appels PeekMessage() pour traiter l'interface utilisateur en vidant ainsi la pile des messages du systeme, cela afin d'éviter que le prog freeze et que Windows l'expulse. Ceci est fait justement parce qu'il n'y a pas moyen de faire autrement. En C++ on créerait un thread pour un fonction longue en temps.

ciao...
BruNews, MVP VC++
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
14 févr. 2010 à 17:14
Salut,

Un thread serait effectivement mieux.
Mais sinon, plutôt que de faire directement des appels à PeekMessage, dans une appli C++ Builder, on utilise :
Application->ProcessMessages();
0
Rejoignez-nous