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 :

TMemo C++Builder version2007


Sujet :

C++Builder

  1. #1
    Membre éclairé Avatar de 3logy
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Août 2007
    Messages : 280
    Par défaut TMemo C++Builder version2007
    Salut j'ai un tout petit probleme:

    Comment faire dans C++builder2007 pour que apres chaque ligne recue, l'on va automatiquement a la ligne dans TMemo?

    Exemple :
    Valeur actuelle de la donnee
    Valeur actuelle de la donnee
    Valeur actuelle de la donnee
    et non :

    Valeur actuelle de la donnee Valeur actuelle de la donnee
    Merci

  2. #2
    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,
    Quand tu écrit dans ton TMemo, utilise la commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Memo1->Lines->Add("Valeur actuelle de la donnee");
    Memo1->Lines->Add("Valeur actuelle de la donnee");
    et tu auras:
    Valeur actuelle de la donnee
    Valeur actuelle de la donnee

  3. #3
    Membre éclairé Avatar de 3logy
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Août 2007
    Messages : 280
    Par défaut
    Dans Mon TMemo je recois des lignes d'un appareil et il est desactive en mode ecriture ceci dit je voudrais que ce soit automatique chaque fois qu'il recoit des donnees....

    voici le code de mon TMemo:


    void TConnectionSR232App::ReturnMethod(AnsiString NewData)
    {
    Receive_Memo->Text=Receive_Memo->Text+NewData;
    }

  4. #4
    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
    Il faut que tu code comme ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Receive_Memo->Lines->Add(NewData);
    et à chaques fois que tu exécutes cette ligne, tu écriras une nouvelle ligne dans le TMemo.

    Pour avoir accès à une ligne particulière du TMemo, il faut que tu utilises la propriété:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ANsiString LigneI = Receive_Memo->Lines->Strings[i];
    où i est l'index de la ligne (la première est à l'indice 0).

    Je pense que ca répond à ton autre post par la même occasion.

  5. #5
    Membre éclairé Avatar de 3logy
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Août 2007
    Messages : 280
    Par défaut
    Ouuppps ca me donne ceci:

    277.0 nm
    -0.00
    0 ABS K
    1: 1.00
    00<13><1
    0>
    Au lieu de
    277.0 nm -0.000 ABS K1: 1.0000<13><10>

  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
    Ok, c'est une mécompréhension de ma part, je pensais que tu recevais la ligne complète à chaque fois.
    Apparemment tu recois tes informations morceaux par morceaux. Il te faut donc stocker les infos dans un AnsiString temporaire et ne l'afficher que lorsque la ligne est complète.

    Le format de la trame est-il toujours identique?
    As-tu moyen de détecter que la ligne est finie?

    d'un point de vu "algorithmique" ca donne ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    void ReceptionTrame(AnsiString NewData)
    {
        static AnsiString tmp;
        tmp += NewData;
        if(ligne complète)
        {
            Memo->Lines->Add(tmp);
            tmp = "";
        }
    }

  7. #7
    Membre éclairé Avatar de 3logy
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Août 2007
    Messages : 280
    Par défaut
    Citation Envoyé par bandit boy Voir le message
    Le format de la trame est-il toujours identique?
    As-tu moyen de détecter que la ligne est finie?
    Oui il y a moyen de reconnaitre les lignes suivantes commencent par la Date

    exemple:

    06.08.2007 13:34:00 1945125 Receive : DR/4000U S
    06.08.2007 13:34:00 1945562 Receive : ER.NR.: 0310U0005217 2.40
    06.08.2007 13:34:01 1945968 Receive : 06-AUG-07 13:52:16 MULTI-WELLENLANGE
    06.08.2007 13:34:01 1946250 Receive : Gruppe 0022 Probe 0001
    06.08.2007 13:34:01 1946375 Receive : -0.001 ABS
    06.08.2007 13:34:01 1946500 Receive : A=K1A1+K2A2
    06.08.2007 13:34:02 1946890 Receive : 277.0 nm -0.000 ABS K1: 1.0000
    06.08.2007 13:34:02 1947281 Receive : 300.0 nm -0.000 ABS K2: 1.0000

  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
    Il faut que tu mettes dans des AnsiString chaques données que tu recois et que tu testes si il y a deux fois la date.

    Si tu l'as deux fois, c'est que tu as au moins une ligne complète et donc que tu peux afficher cette ligne.
    Tu supprimes la ligne que tu viens d'afficher dans l'AnsiString où tu stocks tout et tu recommences ...

    Penses à déclarer tes variables en static pour qu'elles gardes leurs valeurs entre deux appelles de la fonction.
    Utilise les fonctions .Pos, .Delete et .SubString pour travailler sur les chaînes.

    A toi de jouer, tu as toutes les billes en mains.
    Quand tu auras le code, affiche le pour aider ceux qui seront confronté au même problème que toi et click sur la case pour montrer que le problème est résolu.

  9. #9
    Membre éclairé Avatar de 3logy
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Août 2007
    Messages : 280
    Par défaut
    Okay Merci...plus facile a dire qu'a faire j'essaye de toutes les facons....

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. c++ builder TMemo
    Par ola-oz dans le forum C++Builder
    Réponses: 3
    Dernier message: 21/02/2010, 13h02
  2. TMemo C++ Builder 6
    Par Johanboy dans le forum C++Builder
    Réponses: 7
    Dernier message: 23/02/2007, 08h45
  3. le composant TMemo de builder avec une Form
    Par boopix dans le forum C++Builder
    Réponses: 7
    Dernier message: 15/09/2006, 16h00
  4. Outils, cours et NOUVEAUX tutoriels pour Borland C++Builder
    Par hiko-seijuro dans le forum C++Builder
    Réponses: 10
    Dernier message: 12/03/2006, 22h33
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

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