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 :

Blocage de mon TTimer avec le clavier


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 17
    Par défaut Blocage de mon TTimer avec le clavier
    Bonjour,

    je réalise une application qui envoi et reçois une trame à un automate en tcp/ip toutes les 500ms. J'ai utilisé pour cela le TTimer.
    Ca fonctionne, sauf que lorsque je clique sur ma listbox et que j'appuie sur des touches du clavier le timer s'arrête Pour que ca reparte, il faut que je bouge la souris
    Ca bloque aussi lorsque j'utilise la touche TAB pour naviguer dans mes différents bouton mais pas tout le temps!

    Je ne sais pas comment résoudre ce problème.
    J'ai l'impression que le fait d'utiliser le clavier prend la main à mon timer et comme il est dans une phase d'envoi/reception de trame en socket, ca me bloque un peu tout. M'enfin je dis ca ... j'en sais rien

    Je sais que c'est assez compliqué à comprendre mais si quelqu'un a une idée?

    merci

  2. #2
    Expert confirmé

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Par défaut
    Salut,
    Si ta communication ne doit absolument pas être interrompu par les évènement de l'interface, pourquoi ne pas la mettre dans un thread dédié a cette communication ça t'évitera ce genre de problème.

  3. #3
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 17
    Par défaut
    Oui c'est ça, la communication ne doit pas être interrompu.
    J'ai pas utilisé un thread car je ne sais pas le faire.
    Je vais essayer de chercher des docs dessus!

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 407
    Par défaut
    Salut !

    Une idée... mais c'est juste une idée... c'est de le faire via une interruption matérielle : le MIDI !

    Toutes les 500ms... c'est du 120 BPM ... certes, un peu ringard comme rythme... mais coupé au couteau !

    Il s'agit bien sur de s'appuyer sur la callback du dispositif MIDI et non de faire de la musique, en transmettant d'un coté, un événement musical simple et en gardant la main le temps de transmettre les infos sur un autre port !

    Mais bon... chacun fait bien comme il veut !

    A plus !

  5. #5
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 17
    Par défaut
    Citation Envoyé par henderson Voir le message
    Salut !

    Une idée... mais c'est juste une idée... c'est de le faire via une interruption matérielle : le MIDI !

    Toutes les 500ms... c'est du 120 BPM ... certes, un peu ringard comme rythme... mais coupé au couteau !

    Il s'agit bien sur de s'appuyer sur la callback du dispositif MIDI et non de faire de la musique, en transmettant d'un coté, un événement musical simple et en gardant la main le temps de transmettre les infos sur un autre port !

    Mais bon... chacun fait bien comme il veut !

    A plus !
    je suis juste en stage, je vais essayé de m'éviter cette méthode "exotique" mais merci y a de l'idée pour des projets perso

    Je continu pour l'instant d'essayer de comprendre les threads.

  6. #6
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 17
    Par défaut
    Bon j'ai trouvé la cause du problème.
    Ce n'est absolument pas le timer qui se bloque mais l'instruction :
    getpeername qui me renvoi une erreur à chaque fois que je passe la souris sur un composant.

    Donc pour virer ce getpeername, je cherche à savoir comment on peux savoir si une connexion socket est toujours active?

Discussions similaires

  1. [Thread] Blocage dans mon programme
    Par Xo Sonic oX dans le forum EDT/SwingWorker
    Réponses: 4
    Dernier message: 18/06/2005, 17h12
  2. Réponses: 4
    Dernier message: 30/05/2005, 10h29
  3. Kmail veux pas marcher sur mon serveur avec postfix
    Par jean christophe dans le forum Réseau
    Réponses: 4
    Dernier message: 06/05/2005, 01h02
  4. [SERVLET][EJB][Noob]Utiliser mon SERVLET avec mon EJB
    Par Devil666 dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 15/04/2005, 13h45
  5. [JList] Monter et descendre avec le clavier
    Par debdev dans le forum Composants
    Réponses: 16
    Dernier message: 09/04/2005, 17h45

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