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 :

Retour de chariot automatique


Sujet :

C++Builder

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    F�vrier 2005
    Messages
    25
    D�tails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 25
    Par d�faut Retour de chariot automatique
    Dans un RichEdit, j'ai besoin de faire un retour de chariot automatique apr�s 40 caract�res, j'utilise ce code, probleme apr�s l'envoie du VK_RETURN, j'ai des retours de chariot � l'infinie

    Comment corriger le bug ?

    Merci.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    void __fastcall TForm1::RichEdit1KeyDown(TObject *Sender, WORD &Key,
          TShiftState Shift)
    {
         //Pour trouver le nombre de caractère sur la ligne
         longLigne = (RichEdit1->Perform(EM_LINELENGTH, (LPARAM) (DWORD) numCaractere, 0));
         if (longLigne > 40)
         {
              Key = VK_RETURN;
     
         }
    }

  2. #2
    Membre �prouv� Avatar de .:morgoth:.
    Profil pro
    Inscrit en
    F�vrier 2005
    Messages
    124
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 124
    Par d�faut
    Tu peux tenter quelque chose comme ca :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    void __fastcall TForm1::RichEdit1KeyDown(TObject *Sender, WORD &Key, TShiftState Shift)
    {
      int n=(RichEdit1->Perform(EM_LINELENGTH, (LPARAM) (DWORD) numCaractere, 0)); 
      if (n>40) RichEdit1->Text=RichEdit1->Text+"\r\n";
    }
    Sinon y'a aussi une astuce qui consiste � mettre la taille de ton RichEdit pile poil pour contenir 40 caract�res et d�finir la propri�t� WordWrap=true

    A toi de voir

  3. #3
    Membre �clair�
    Profil pro
    Inscrit en
    D�cembre 2004
    Messages
    62
    D�tails du profil
    Informations personnelles :
    �ge : 48
    Localisation : France, Paris (�le de France)

    Informations forums :
    Inscription : D�cembre 2004
    Messages : 62
    Par d�faut Bizarre
    C'est bizarre, j'ai test� ton code, et �a n'a chez moi aucun effet.
    La nouvelle valeur affect�e � Key dans l'�venement KeyDown
    ne modifie pas la frappe. Avec KeyPress c'est mieux!

    Ton probl�me doit avoir une autre origine. Regarde tes �venements.

  4. #4
    Membre �prouv� Avatar de .:morgoth:.
    Profil pro
    Inscrit en
    F�vrier 2005
    Messages
    124
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 124
    Par d�faut
    Ouais completement d'accord avec toi Troll.
    J'avais meme pas tilt�...
    C'est bien OnKeyPress qu'il faut utiliser etpas OnkeyDown.

    Par contre mon code devrait marcher...

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    F�vrier 2005
    Messages
    25
    D�tails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 25
    Par d�faut
    Mon code fonctionne bien, mais que je fasse \r\n ou Key = VK_RETURN , le probl�me est apr�s 40 frappes il vais des retour de chariot sans fin..

    Je ne veux pas avoir une fen�tre fixe j�aime bien laisser l�utilisateur avec un minimum de contr�le sur l application.

    Je vais tester dans OnKeyPress.

    Merci.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    F�vrier 2005
    Messages
    25
    D�tails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 25
    Par d�faut Retour de Chariot automatique


    Merci,

    J'ai trouver, une ligne de code dans RichEdit1Change causer le Bug.

    Maintenant ceci est nickel :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    void __fastcall TForm1::RichEdit1KeyPress(TObject *Sender, char &Key)
    {
         //Pour trouver le numéro de ligne(s) et de caratère(s)
         numLigne = RichEdit1->Perform(EM_EXLINEFROMCHAR, 0, (LPARAM) (DWORD) RichEdit1->SelStart);
         numCaractere = (RichEdit1->SelStart - RichEdit1->Perform(EM_LINEINDEX, (LPARAM) (DWORD) numLigne, 0));
         AnsiString LigneCol(IntToStr(numLigne) + ": " + IntToStr(numCaractere));
         //Form1->StatusBar->Panels->Items[0]->Text = LigneCol;
     
         if (numCaractere > 39)//Maximum de 40 caracteres par ligne
         {
              Key = VK_RETURN;
         }
    }
    Merci.

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

Discussions similaires

  1. [WD14] Retour chariot automatique
    Par Raptor92 dans le forum WinDev
    R�ponses: 4
    Dernier message: 06/08/2009, 09h58
  2. [XSL-FO] Comment faire un retour de chariot
    Par virgul dans le forum XSL/XSLT/XPATH
    R�ponses: 4
    Dernier message: 22/03/2005, 07h20
  3. R�ponses: 4
    Dernier message: 24/01/2005, 15h50
  4. [JOptionPane]retour � la ligne automatique ?
    Par Pill_S dans le forum Composants
    R�ponses: 5
    Dernier message: 01/12/2004, 11h55
  5. R�ponses: 4
    Dernier message: 10/06/2004, 18h05

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