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 :

PortCom comment utiliser le composant dynamiquement


Sujet :

C++Builder

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 8
    Par défaut PortCom comment utiliser le composant dynamiquement
    bonjour je doit communiquer avec une carte,
    le probleme est que je doit lui envoyé un "w" et cette derniere me repond une trame sous la forme XXXXXXXXXX,XXXXXXXXXX

    voila j' arrive a emettre mais pas a recevoir, ou puis-je trouver une classe port serie qui peut emettre et recevoir de suite.

    merci

  2. #2
    Membre éclairé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    934
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 934
    Par défaut
    Tu utilises quoi pour communiquer par le port Com ?

    Le composant TComPort devrait résoudre tes problèmes, Va voir ici

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 20
    Par défaut
    voila j' ai essayé avec Tcomport

    j' arrive a envoyer:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     void __fastcall TForm1::Button1Click(TObject *Sender)
    {
            ComPort1->Connected=true;
            AnsiString Phrase;
            Phrase = Edit1->Text;
            ComPort1->WriteStr(Phrase);
    }
    lorsque l'on clique sur le bouton il envoi le contenu de l' Edit1.



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     void __fastcall TForm1::ComPort1RxChar(TObject *Sender, int Count)
    {
            AnsiString Str;
            ComPort1->ReadStr(Str, Count);
            Edit2->Text=Edit2->Text + Str;        
    }
    mais la rien ne se passe, faut il activer la methode?

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 8
    Par défaut
    desolé je n' ai pas repondu avec mon pseudo car je suis chez une amies

    je tien a preciser que evRxChar est bien a true

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 8
    Par défaut
    probleme resolu, c' était du au flow de control.

    Maintenant est-il possible de creer le composant sans creer de fiche?

    car je doit avoir une classe port serie, une mt2s, une telescope et une raquette.

  6. #6
    Membre émérite
    Avatar de bandit boy
    Profil pro
    Inscrit en
    Février 2006
    Messages
    916
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 916
    Par défaut
    Salut,
    Il est possible de créer n'importe quel composant sans créer de fiche, tu as un exemple de création dynamique avec actions dans la rubrique Trucs et astuces.

    Sinon j'ai développé une class pour le PortCom disponible en partie sur ce post.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 8
    Par défaut
    le code que tu a fait creer un comport ou utilise celui de builder?

  8. #8
    Membre émérite
    Avatar de bandit boy
    Profil pro
    Inscrit en
    Février 2006
    Messages
    916
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 916
    Par défaut
    Ni l'un ni l'autre
    En fait il utilise les API Windows comme le Comport. Cela reviens quasiment au même que si j'avais créé un ComPort.

    Si tu veux en créer un, il te faut le Faire dynamiquement, comme l'exemple du bouton dans les trucs et astuces. Quelque chose comme:
    dans le .h
    et dans le cpp:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    COM = new TComPort(this);
    ...
    Je n'ai pas le composant d'installé donc il se peut que la synthaxe ne soit pas correct.

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 8
    Par défaut
    le composant est ajouté,
    je voudrai avoir une classe Portcom.cpp
    et une classe mt2s.cpp qui derive de la classe Portcom.cpp

    j'ai mi dans le Portcom.h en public

    TComPort *COM;


    et dans le Portcom.cpp:

    COM = new TComPort(this);

    mais j' ai des erreurs, me suis-je trompé quelque part?

  10. #10
    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
    Peut tu nous dire quel sont les messages d'erreur, ca nous aiderais


  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2007
    Messages : 103
    Par défaut Faute dans l'éxécution
    Bonjour, je retrouve la même erreur au moment de la création de mon composant ComTerminal:



    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
    21
    22
    23
    24
    25
     
    #pragma hdrstop
     
    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma link "CPort"
    #pragma link "CPortCtl"
    #pragma resource "*.dfm"
    TForm1 *Form1;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
    TComPort *ComPort1;
    ComPort1 = new TComPort(this);
     
    TComTerminal *ComTerminal1 = new TComTerminal(this);
    ComTerminal1->Parent = Form1;
    ComTerminal1->Connected=false;
    ComTerminal1->ComPort=ComPort1;
    ComTerminal1->Name="Comterminal";
     
    }
    //---------------------------------------------------------------------------
    Et voici le message d'erreur

    Project Project1.exe raised exception class EAccessViolation with message 'Access violation at adress 40003005 in module 'VCL50.BPL'. Read of address 0000003C, Process stopped

    j'utilise la lib cport2.64 et elle fonctionne parfaitement a la conception de fiche.

    Quelqu'un a une idée?

  12. #12
    Membre émérite
    Avatar de bandit boy
    Profil pro
    Inscrit en
    Février 2006
    Messages
    916
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 916
    Par défaut
    Est ce que tu as ce message d'erreur quand tu passes directement par l'exe, et non par Builder?

    Si c'est le cas, le problème vient du fait que tu n'as pas compilé avec les librairies intégrées.

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2007
    Messages : 103
    Par défaut
    Effectivement j'ai aussi ce message d'erreur pour exe, j'ai ressayé en décochant les cases "Use dynamic RTL" et "Build with runtime Packages".

    Je retrouve a nouveau une erreur de Violation Acces mais a une adresse différente.

  14. #14
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 122
    Par défaut
    as tu bien configurer ton numéro de port avant d'ouvrir la connexion?

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2007
    Messages : 103
    Par défaut
    Je n'ouvre pas encore de communication, j'initialise le connected à false. Il Fait la fautes à création du composant.

Discussions similaires

  1. Réponses: 0
    Dernier message: 10/02/2008, 16h28
  2. comment utiliser le composant TAgent
    Par karimro dans le forum C++Builder
    Réponses: 2
    Dernier message: 24/11/2007, 13h16
  3. Comment utiliser le composant XPManifest ?
    Par 21247692 dans le forum Composants VCL
    Réponses: 1
    Dernier message: 09/11/2007, 10h19
  4. Comment utiliser le composant TUDPSocket ?
    Par zodd dans le forum Web & réseau
    Réponses: 11
    Dernier message: 16/11/2005, 12h09
  5. Comment utiliser un composant sans son nom ?
    Par aliwassem dans le forum Langage
    Réponses: 4
    Dernier message: 03/10/2005, 20h47

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