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 :

Beug lors de l'envoi de bit c++ builder


Sujet :

C++Builder

  1. #1
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    32
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 32
    Par d�faut Beug lors de l'envoi de bit c++ builder
    Bonjour,

    Voici un bou de mon programme,
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    void __fastcall TForm1::RadioButton1Click(TObject *Sender)
    {
            DLPortIO1->Port [0x378] = 0x01;
             Sleep(1000);
            DLPortIO1->Port [0x378] = 0x02;
             Sleep(1000);
            DLPortIO1->Port [0x378] = 0x04;
             Sleep(1000);
            DLPortIO1->Port [0x378] = 0x08;
             Sleep(1000);
    }
    Mon probl�me c'est que lorsque je lance cette s�quence, le programme beug je ne peux plus rien faire mais les diff�rents bits sont bien envoy�s! et quand la s�quence est fini il se d�beug tout seul ... est-ce que quelqu'un serait-il pourquoi il beug lors de la s�quence ?

    Merci

  2. #2
    R�dacteur
    Avatar de Laurent Gomila
    Profil pro
    D�veloppeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par d�faut
    Sleep(1000) endort l'application pendant 1 seconde. Donc pendant 4 secondes ton application ne r�pond plus, c'est tout � fait normal.

    PS : "bug" ou "bogue", mais pas "beug"

  3. #3
    Membre �clair� Avatar de Bayard
    Inscrit en
    Juin 2002
    Messages
    863
    D�tails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 863
    Par d�faut
    Le mieux est de poster cela sur le forum C++ Builder.
    Ici, c'est pour le C++ "en g�n�ral".

  4. #4
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    32
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 32
    Par d�faut
    Citation Envoy� par Laurent Gomila
    Sleep(1000) endort l'application pendant 1 seconde. Donc pendant 4 secondes ton application ne r�pond plus, c'est tout � fait normal.

    PS : "bug" ou "bogue", mais pas "beug"
    Comment pourrait-je faire alors pour creer un delay sans "endormir" l'application ?

  5. #5
    Membre �clair� Avatar de Bayard
    Inscrit en
    Juin 2002
    Messages
    863
    D�tails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 863
    Par d�faut
    Je ne connais pas vraiment le besoin, mais j'imagine qu'il faut cr�er un thread.

    C++Builder a une classe qui encapsule les threads si besoin est.

  6. #6
    Membre Expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Par d�faut
    Ou plus simplement un timer

  7. #7
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    32
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 32
    Par d�faut
    non je ne peux pas utliser de timer car le timer va m'envoyer mon instruction tous les 2 ou 3 secondes comme on le souhaite, moi, je voudrais envoyer une intruction et ensuite une pause, une autre instruction, pause ...etc

  8. #8
    Membre chevronn�
    Avatar de Altau
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    296
    D�tails du profil
    Informations personnelles :
    �ge : 68
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 296
    Par d�faut
    Si ton programme ne fait rien, entre chaque ex�cution du Timer, c'est comme une pause, non ?

  9. #9
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    32
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 32
    Par d�faut
    comment veut-tu lancer le timer entre chaque execution ?

    merci de ton aide

  10. #10
    Membre chevronn�
    Avatar de Altau
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    296
    D�tails du profil
    Informations personnelles :
    �ge : 68
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 296
    Par d�faut
    Ben il se lance tout seul, �a sert � �a, un timer.

  11. #11
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    32
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 32
    Par d�faut
    concr�tement comment veux-tu faire ? comme cela ?

    execution1;
    lancer le timer;
    execution2;
    etc...

  12. #12
    Membre �prouv�
    Inscrit en
    Mars 2002
    Messages
    105
    D�tails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 105
    Par d�faut
    Bonjour,

    On peut �galement regarder du c�t� de Application->ProcessMessages() pour g�rer tous les messages en attente avant chaque Sleep().

    Une autre solution est d'utiliser un nouveau thread d�di� uniquement � la communication. Le Sleep() ne bloquerait alors plus le thread principal. Pour plus d'infos voir l'aide de BCB6 au sujet des "Threads de service".

    Nicolas

  13. #13
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    32
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 32
    Par d�faut
    [RESOLU]

    voici tout simplement la r�ponse (trouv� par BIB HOME)

    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
     
    timer(variable=temps)
    {
    if(i==1)
            {
                    DLPortIO1->Port [0x378] = 0x01;
            }
    if(i==2)
            {
                    DLPortIO1->Port [0x378] = 0x02;
            }
    if(i==3)
            {
                    DLPortIO1->Port [0x378] = 0x04;
            }
    i++;
     
    if(i==4){i=1;}
    }

  14. #14
    Membre chevronn�
    Avatar de Altau
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    296
    D�tails du profil
    Informations personnelles :
    �ge : 68
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 296
    Par d�faut
    Citation Envoy� par tibo7
    concr�tement comment veux-tu faire ? comme cela ?
    execution1;
    lancer le timer;
    execution2;
    etc...
    Absolument pas. Un TTimer consiste � demander au syst�me d'ex�cuter la fonction fournie dans l'�v�nement OnTimer � un intervalle de temps donn� (Timer1->Interval). Ca ne se programme qu'une seule fois (voir l'aide de BCB sur TTimer).

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Probl�me lors de l'envoie d'un mail (JavaMail)
    Par Invit� dans le forum API standards et tierces
    R�ponses: 7
    Dernier message: 09/05/2006, 10h23
  2. [MySQL] Ex�cuter 2 actions lors de l'envoi d'un formulaire
    Par mathieu7497 dans le forum PHP & Base de donn�es
    R�ponses: 2
    Dernier message: 30/03/2006, 21h16
  3. [javamail] pb lors de l'envoi d'un mail
    Par mawashee dans le forum API standards et tierces
    R�ponses: 1
    Dernier message: 08/09/2005, 16h50
  4. A respecter lors de l'envoi d'un message (Version 2)
    Par Aurelien.Regat-Barrel dans le forum Windows
    R�ponses: 0
    Dernier message: 04/01/2003, 15h59

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