Equivalence entre DoEvent de VB6 et C++Builder

Signaler
Messages postés
1
Date d'inscription
mardi 22 septembre 2009
Statut
Membre
Dernière intervention
5 février 2010
-
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
-
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

Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
25
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++
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
13
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();