IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

Activer les "Windows message loop"


Sujet :

C++Builder

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm� Avatar de marcootz
    Homme Profil pro
    Inscrit en
    D�cembre 2006
    Messages
    159
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (�le de France)

    Informations forums :
    Inscription : D�cembre 2006
    Messages : 159
    Par d�faut Activer les "Windows message loop"
    Salut,

    Je suis en train d'utiliser les fonctions d'une API fournie avec un driver d'�cran tactile. Mon but est de lancer le panneau de calibration de l'�cran (4 points) puis de lire et de sauvegarder les param�tres ainsi obtenus.

    J'ai un probl�me avec la fonction qui lance ce panneau de calibration. Dans la doc de L'API pour cette fonction et il est mis en remarque :

    The caller has to make sure that application has the Windows message loop so that this calibration can work correctly
    Quand j'appelle ma fonction, le panneau de calib se lance bien, mais le syst�me reste fig�... Je pense que je doit "activer" les messages loop pour pouvoir redonner la main � mon appli mais je ne trouve pas comment faire. Pouvez vous m'aidez ?

    Merci par avance

  2. #2
    Expert �minent
    Avatar de ShaiLeTroll
    Homme Profil pro
    D�veloppeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 089
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 44
    Localisation : France, Seine Saint Denis (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur C++\Delphi
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 089
    Par d�faut
    Dans une application normale, c'est le Run() dans le WinMain
    Dans une application sans utiliser TApplication, je fais ceci

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
      while (...)
      {
        if (WaitMessage())
        {
          TMsg Msg;
          if (PeekMessage(&Msg, 0, 0, 0, PM_REMOVE))
          {
            switch (Msg.message)
            {
              case WM_QUIT :
     
              break;
     
              case WM_... :
                ...
              break;
            }
          }
        }
      }
    Aide via F1 - FAQ - Guide du d�veloppeur Delphi devant un probl�me - Pensez-y !
    Attention Troll M�chant !
    "Quand un homme a faim, mieux vaut lui apprendre � p�cher que de lui donner un poisson" Confucius
    Mieux vaut se taire et para�tre idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la m�diocrit� !

    L'exp�rience, c'est le nom que chacun donne � ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre confirm� Avatar de marcootz
    Homme Profil pro
    Inscrit en
    D�cembre 2006
    Messages
    159
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (�le de France)

    Informations forums :
    Inscription : D�cembre 2006
    Messages : 159
    Par d�faut
    Merci ShaiLeTroll,

    Par contre dans ton code, a quel endroit lancer ma fonction bloquante ? Juste avant le while ?

  4. #4
    Expert �minent
    Avatar de ShaiLeTroll
    Homme Profil pro
    D�veloppeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 089
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 44
    Localisation : France, Seine Saint Denis (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur C++\Delphi
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 089
    Par d�faut
    Si c'est la fonction de l'API qui est bloquante, je vois pas bien comment tu pourrais faire une boucle de message en m�me temps (sauf dans un thread mais c'est hors de propos � mon avis)

    Dans une application normale, Run() fait ce travail, il n'est pas n�cessaire de le faire !

    Qu'est qui est fig�, juste ton EXE ou le "syst�me" ?
    Aide via F1 - FAQ - Guide du d�veloppeur Delphi devant un probl�me - Pensez-y !
    Attention Troll M�chant !
    "Quand un homme a faim, mieux vaut lui apprendre � p�cher que de lui donner un poisson" Confucius
    Mieux vaut se taire et para�tre idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la m�diocrit� !

    L'exp�rience, c'est le nom que chacun donne � ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  5. #5
    Membre confirm� Avatar de marcootz
    Homme Profil pro
    Inscrit en
    D�cembre 2006
    Messages
    159
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (�le de France)

    Informations forums :
    Inscription : D�cembre 2006
    Messages : 159
    Par d�faut
    C'est tout le syst�me qui est fig�.

    Voici un extrait de l'aide pour ma fonction :
    C'est surtout la derni�re ligne qui me fait penser qu'il faut intercepter les messages Windows d'une fa�on particuli�re

    BOOL WINAPI DoCalibration (
    HANDLE hFile,
    HWND hParentWnd,
    PVOID pContext,
    MAP_CALLBACK_ROUTINE pCallbackRoutine );

    DoCalibration do 4 points calibration for the touchscreen.

    Parameters

    hFile
    Handle to the open device by CreateDevice.

    hParentWnd
    The parent window.

    pContext
    Caller prepared buffer to be passed to the caller prepared callback routine.

    pCallbackRoutine
    Caller prepared callback routine. Once the calibration is done, the callback routine will be called. The Caller prepared buffer pContext, calibration result information will be passed to this callback routine.

    Remark
    This calibration mapping can be finished successfully only DeviceThread was started with StartDeviceThread . This function creates a calibration window for 4 points calibration. The caller has to make sure that application has the Windows message loop so that this calibration can work correctly.
    Merci !

  6. #6
    Expert �minent
    Avatar de ShaiLeTroll
    Homme Profil pro
    D�veloppeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 089
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 44
    Localisation : France, Seine Saint Denis (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur C++\Delphi
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 089
    Par d�faut
    Il y a donc bien un thread � g�rer !
    Difficile de t'aider plus, c'est une API, sans connaissance pr�cise de celle-ci et de son comportement, ce n'est pas �vident de t'aider

    la pCallbackRoutine est appel� qu'une seule fois ?
    Etrange, un buffer de retour aurait �t� suffisant

    Si pCallbackRoutine est appel� plusieurs fois (genre � chaque d�placement de souris), essaye un Application->ProcessMessages() mais �a pue la bidouille
    Aide via F1 - FAQ - Guide du d�veloppeur Delphi devant un probl�me - Pensez-y !
    Attention Troll M�chant !
    "Quand un homme a faim, mieux vaut lui apprendre � p�cher que de lui donner un poisson" Confucius
    Mieux vaut se taire et para�tre idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la m�diocrit� !

    L'exp�rience, c'est le nom que chacun donne � ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

Discussions similaires

  1. D�sactiver le message "Activer les macros"
    Par Jeannot45 dans le forum VBA Word
    R�ponses: 1
    Dernier message: 26/07/2007, 14h03
  2. [C#] Timer sur les �v�nements des messages Windows
    Par Nullos Oracle dans le forum Windows Forms
    R�ponses: 1
    Dernier message: 19/09/2006, 11h33
  3. MyISAM & les acc�s concurrentiels: le "miracle"
    Par twkjp dans le forum Outils
    R�ponses: 3
    Dernier message: 09/09/2005, 17h02
  4. [cr 8.5] comment exploiter les donn�es d'un "array"
    Par kikidrome dans le forum SAP Crystal Reports
    R�ponses: 12
    Dernier message: 09/06/2005, 14h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo