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 :

Défilement automatique dans un Memo


Sujet :

C++Builder

  1. #1
    Membre Expert
    Avatar de Faith's Fall
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 740
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 740
    Par défaut Défilement automatique dans un Memo
    Bonjour,

    J'ai un petit souci en C++Builder. Sur ma fenêtre principale, je dispose d'un Memo (Composant RichEdit). Sur un commande, j'appelle le composant TJvCreateProcess de la librairie Jedi, ce qui met du texte dans le memo. La pour le moment il fait sont boulot correctement.

    Le problème je ne vois pas comment faire pour que le memo défile en meme temps que le texte car la actuellement il est bloquer au debut, cad qu'il ne défile pas.

    En gros je voudrai que la derniere ligne du log soit afficher tout le temps.

    Quelqu'un à déjà eu ce problème ou connait une technique pour me sortir de ceux problème ?

    d'avance.

  2. #2
    Membre éprouvé
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Par défaut
    Bonsoir,

    Avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    PostMessage(RichEdit1->Handle,WM_VSCROLL, SB_PAGEDOWN, NULL);
    (pas sur, pas sur ...)

    @ +

  3. #3
    Membre Expert
    Avatar de Faith's Fall
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 740
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 740
    Par défaut
    Citation Envoyé par Sunchaser
    Bonsoir,

    Avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    PostMessage(RichEdit1->Handle,WM_VSCROLL, SB_PAGEDOWN, NULL);
    (pas sur, pas sur ...)

    @ +
    pour la réponse, mais malgré que sa compile, sa ne marche pas. Le memo bouge pas d'un poil

  4. #4
    Membre éprouvé
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Par défaut
    Memo rétif ...

    Je suppose qu'avec le paramètre SB_BOTTOM, ça doit pas bouger non plus ...?

  5. #5
    Membre éprouvé
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Par défaut
    Je viens d'essayer avec un TRichEdit et :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    PostMessage(RichEdit1->Handle,WM_VSCROLL, SB_BOTTOM, NULL);
    et ... ben il va en bout de texte, qu'il y ait des scrollBars ou non.

    Et chez toi ?

  6. #6
    Membre Expert
    Avatar de Faith's Fall
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 740
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 740
    Par défaut
    Tu la mis dans quelle evenement ? Parce que chez moi il change rien. Peut etre le fait que le compo est pas vraiment un RichEdit mais une version améliorer.


    En tout cas sa bouge pas d'un poil.

  7. #7
    Membre éprouvé
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Par défaut
    Ah moui effectivement, je ne m'étais pas beaucoup 'fatigué' :
    j'ai juste essayé avec un RichEdit contenant un long, long, long texte et en placant le code dans un 'OnClick' d'un TButton.
    C'est assez 'artificiel' comme situation, j'avoue.

    Je ne connais point TJvCreateProcess, désolé ...

  8. #8
    Membre Expert
    Avatar de Faith's Fall
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 740
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 740
    Par défaut
    Citation Envoyé par Sunchaser
    Ah moui effectivement, je ne m'étais pas beaucoup 'fatigué' :
    j'ai juste essayé avec un RichEdit contenant un long, long, long texte et en placant le code dans un 'OnClick' d'un TButton.
    C'est assez 'artificiel' comme situation, j'avoue.

    Je ne connais point TJvCreateProcess, désolé ...
    Ok pas grave, merci pour ton aide, je continue a chercher

  9. #9
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Salut BWP-Necromance:
    l'idee de Sunchaser n'est pas mauvaise j'ai fait un essai je remplis le Richedit et a la fin je fais un "PostMessage" si tu est dans une boucle tu insere le "PostMessage" a la fin
    un exemple:
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
    RichEdit1->Lines->Add("toto");
    RichEdit1->Lines->Add("tata");
    RichEdit1->Lines->Add("titi");
    RichEdit1->Lines->Add("tete");
    RichEdit1->Lines->Add("tutu");
    RichEdit1->Lines->Add("toto");
    RichEdit1->Lines->Add("tata");
    RichEdit1->Lines->Add("titi");
    RichEdit1->Lines->Add("tete");
    RichEdit1->Lines->Add("tutu");
    PostMessage(RichEdit1->Handle, WM_VSCROLL, SB_BOTTOM, 0);
     
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    RichEdit1->Lines->Add("bouton1");
    PostMessage(RichEdit1->Handle, WM_VSCROLL, SB_BOTTOM, 0);
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button2Click(TObject *Sender)
    {
    RichEdit1->Lines->Add("bouton2");
    PostMessage(RichEdit1->Handle, WM_VSCROLL, SB_BOTTOM, 0);
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button3Click(TObject *Sender)
    {
    RichEdit1->Lines->Add("bouton3");
    PostMessage(RichEdit1->Handle, WM_VSCROLL, SB_BOTTOM, 0);
    }
    Si tu a besoin de voir defiler ton texte, apres chaque insertion de ligne tu fait un "PostMessage"

  10. #10
    Membre Expert
    Avatar de Faith's Fall
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 740
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 740
    Par défaut
    J'ai tester sa:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    void __fastcall TDMod::CProcessRead(TObject *Sender, const AnsiString S,
          const bool StartsOnNewLine)
    {
            MainForm->MemoCompiler->Lines->Add(S);
            MainForm->StatBar->Panels->Items[2]->Text = "C";
            PostMessage(MainForm->MemoCompiler->Handle, WM_VSCROLL, SB_BOTTOM, 0);
    }
    Malheureusement il bouge pas Pourtant il affiche le texte

    Et théoriquement il devrait a chaque insertion d'une ligne descendre

    Meme tester dans l'evenement OnChange et il veut pas

  11. #11
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Je ne vois pas pourquoi cela ne marche pas, mais juste une idee comme cela a tu essaye de supprimer la ligne
    MainForm->StatBar->Panels->Items[2]->Text = "C";

  12. #12
    Membre Expert
    Avatar de Faith's Fall
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 740
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 740
    Par défaut
    Citation Envoyé par blondelle
    Je ne vois pas pourquoi cela ne marche pas, mais juste une idee comme cela a tu essaye de supprimer la ligne
    J'ai enlever la ligne (meme si je pense que cela ne devrais rien changer) et toujours pareil. Il doit avoir une coquille qui merde quelque part

    En tout cas merci pour ta proposition, mais je pense qu'il faut voir sur un autre moyen...

  13. #13
    Membre émérite
    Avatar de Interruption13h
    Inscrit en
    Août 2005
    Messages
    603
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 603
    Par défaut
    Salut !

    Je croi que c'est plutôt un SendMessage :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    RichEdit1->Lines->Add("toto");
    RichEdit1->Lines->Add("tata");
    RichEdit1->Lines->Add("titi");
    RichEdit1->Lines->Add("tete");
    RichEdit1->Lines->Add("tutu");
    RichEdit1->Lines->Add("toto");
    RichEdit1->Lines->Add("tata");
    RichEdit1->Lines->Add("titi");
    RichEdit1->Lines->Add("tete");
    RichEdit1->Lines->Add("tutu");
    
    SendMessage(RichEdit1->Handle, WM_VSCROLL, SB_BOTTOM, 0);






    Bonne continuation !

  14. #14
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Par défaut
    Pour un TMemo, j'ai utilisé la proproété TCaretPos, et Memo1 -> Text.Length()
    Tu peut aussi utiliser Memo1 -> SelStart, Memo1 -> SelLength avec Memo1 -> Text.Length(); pour contourner le problème.

  15. #15
    Membre Expert
    Avatar de Faith's Fall
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 740
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 740
    Par défaut
    Bon merci a tous pour votre aide, en fait le compo que j'avais etait a base de RichEdit, mais aucune manip' ne marchait dessus. J'ai tester avec un vrai RichEdit et la sa marche. (La solution avec SendMessage, mais je pense que PostMessage doit aussi fonctionner alors).

    Donc je vous remercie et je peut enfin passer a autre chose

    C'est résolu

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

Discussions similaires

  1. [MVVM] Défilement automatique dans une ListView
    Par em925 dans le forum Windows Presentation Foundation
    Réponses: 1
    Dernier message: 31/05/2014, 02h14
  2. Défilement automatique dans un TJvStringGrid
    Par Naga2 dans le forum Composants VCL
    Réponses: 0
    Dernier message: 09/07/2011, 18h50
  3. [AC-2003] Barre de défilement verticale dans un Memo
    Par portecd dans le forum Access
    Réponses: 2
    Dernier message: 10/02/2011, 12h13
  4. "scrollbar" avec défilement automatique dans listbox
    Par nanettemontp dans le forum Windows
    Réponses: 4
    Dernier message: 15/10/2007, 10h44
  5. Défilement automatique JTable dans JscrollPane
    Par jdewalqu dans le forum Composants
    Réponses: 3
    Dernier message: 24/08/2006, 17h28

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