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 :

Saisir un texte avec des couleurs


Sujet :

C++Builder

  1. #1
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 131
    Points : 65
    Points
    65
    Par défaut Saisir un texte avec des couleurs
    Salut tout le monde .je voudrais savoir si on pouvais avoir un composant ou on peut saisir des lignes mais avec des couleurs.
    plus précisémment je voudrais affiché un texte normal mais avec quelques ligne qui n'ont pas la méme couleur que les autres.
    j'ai utilisé un TMEMO mais c'est impossilble de faire chaque lignes avec une couleur.
    et MERCI.

  2. #2
    Membre habitué
    Homme Profil pro
    Inscrit en
    Janvier 2003
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2003
    Messages : 332
    Points : 146
    Points
    146
    Par défaut
    Salut,

    Regarde ici (http://www.tmssoftware.com/), il y a surement ce que tu cherches.

  3. #3
    Membre averti
    Avatar de Altau
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    296
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 296
    Points : 360
    Points
    360
    Par défaut
    TRichEdit permet de le faire.

  4. #4
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Points : 4 935
    Points
    4 935
    Par défaut
    Salut,

    Tu peux aussi utiliser un RichEdit pour mettre des lignes en couleur ...

    Pour ce faire, j'ai fait une procédure ColorerTexte qui met d'une couleur différente chaque ligne de ton RichEdit ...

    Dans le .h :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void __fastcall ColorerTexte(TRichEdit *leRichEdit);
    Dans le .cpp :
    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
    36
    37
    38
     
    void __fastcall ColorerTexte(TRichEdit *leRichEdit)
    {
    int maCouleur,DebutSelection;
     
    // On définit un tableau de couleur
    int Coloration[3];
    Coloration[0]=clBlue;
    Coloration[1]=clRed;
    Coloration[2]=clFuchsia;
     
    // Initialisation des variables
    DebutSelection=0;
    maCouleur=0;
      // On va boucler pour i de 0 à nombre de ligne -1
      for (int i=0;i<=leRichEdit->Lines->Count-1;i++)
      {
        // On positionne le curseur
        leRichEdit->SelStart=DebutSelection;
        // On sélectionne la ligne
        leRichEdit->SelLength=leRichEdit->Lines->Strings[i].Length();
        // On définit la couleur du texte
        leRichEdit->SelAttributes->Color=Coloration[maCouleur];
        // On positionne le curseur à la ligne suivante
        DebutSelection=DebutSelection+leRichEdit->Lines->Strings[i].Length()+2;
        // Si on a fait toutes les couleurs alors on reprend la première couleur
        // sinon on prend la couleur suivante
        if (maCouleur>=2)
        {
          maCouleur=0;
        }
        else
        {
          maCouleur++;
        }
      }
      leRichEdit->SelStart=leRichEdit->Text.Length();
    }
    Exemple d'utilisation :

    Tu crées un RichEdit, tu renseignes les champs, et ensuite, tu utilises ma procédure.

    Petite info, mais la procédure ColorerTexte dans le OnExit de ton RichEdit, ça aura pour but de colorer tout d'un coup ...

    Tu peux le faire dans le OnChange, mais ça scintille un peu et ça fonctionne pas très bien lors d'un retour chariot non souhaité ( retour chariot automatique lorsque la longueur de la ligne est supérieure à la longueur du composant ...)

    A améliorer sans doute, mais c'est une piste

    J'espère que ça te conviendras

  5. #5
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 131
    Points : 65
    Points
    65
    Par défaut
    Merci ero-sennin.votre programme marche tres bien.juste une autre petite question.
    est-ce possible avec RichEdit de rendre une ligne en "GRAS" si c'est possible alors s'il vous plait quoi utilisé comme fonction.
    merci

  6. #6
    Membre chevronné
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Points : 2 189
    Points
    2 189
    Par défaut
    Je n'ai pas essayer, mais d'après moi ce serais comme ceci:
    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
    36
    37
    38
    39
    void __fastcall ColorerTexte(TRichEdit *leRichEdit)
    {
    int maCouleur,DebutSelection;
     
    // On définit un tableau de couleur
    int Coloration[3];
    Coloration[0]=clBlue;
    Coloration[1]=clRed;
    Coloration[2]=clFuchsia;
     
    // Initialisation des variables
    DebutSelection=0;
    maCouleur=0;
      // On va boucler pour i de 0 à nombre de ligne -1
      for (int i=0;i<=leRichEdit->Lines->Count-1;i++)
      {
        // On positionne le curseur
        leRichEdit->SelStart=DebutSelection;
        // On sélectionne la ligne
        leRichEdit->SelLength=leRichEdit->Lines->Strings[i].Length();
        // On définit la couleur du texte
        leRichEdit->SelAttributes->Color=Coloration[maCouleur];
        leRichEdit->SelAttributes->Font->Style << fsBold;
        // On positionne le curseur à la ligne suivante
        DebutSelection=DebutSelection+leRichEdit->Lines->Strings[i].Length()+2;
        // Si on a fait toutes les couleurs alors on reprend la première couleur
        // sinon on prend la couleur suivante
        if (maCouleur>=2)
        {
          maCouleur=0;
        }
        else
        {
          maCouleur++;
        }
      }
      leRichEdit->SelStart=leRichEdit->Text.Length();
    }

  7. #7
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Points : 4 935
    Points
    4 935
    Par défaut
    Salut,

    Crayon y était presque ...

    C'est ceci :

    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
    36
    37
    38
    39
    void __fastcall ColorerTexte(TRichEdit *leRichEdit)
    {
    int maCouleur,DebutSelection;
     
    // On définit un tableau de couleur
    int Coloration[3];
    Coloration[0]=clBlue;
    Coloration[1]=clRed;
    Coloration[2]=clFuchsia;
     
    // Initialisation des variables
    DebutSelection=0;
    maCouleur=0;
      // On va boucler pour i de 0 à nombre de ligne -1
      for (int i=0;i<=leRichEdit->Lines->Count-1;i++)
      {
        // On positionne le curseur
        leRichEdit->SelStart=DebutSelection;
        // On sélectionne la ligne
        leRichEdit->SelLength=leRichEdit->Lines->Strings[i].Length();
        // On définit la couleur du texte
        leRichEdit->SelAttributes->Color=Coloration[maCouleur];
        // On met en gras la sélection
        leRichEdit->SelAttributes->Style= TFontStyles()<< fsBold;
        // On positionne le curseur à la ligne suivante
        DebutSelection=DebutSelection+leRichEdit->Lines->Strings[i].Length()+2;
        // Si on a fait toutes les couleurs alors on reprend la première couleur
        // sinon on prend la couleur suivante
        if (maCouleur>=2)
        {
          maCouleur=0;
        }
        else
        {
          maCouleur++;
        }
      }
      leRichEdit->SelStart=leRichEdit->Text.Length();
    }
    Voilà

    A+

  8. #8
    Membre chevronné
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Points : 2 189
    Points
    2 189
    Par défaut
    Citation Envoyé par ero-sennin
    Crayon y était presque ...
    Merci pour la correction Je suis au travail et ici je n'ai pas l'aide de BCB, j'ai donc pris un bout de code sur le forum que je pensais approprié.

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

Discussions similaires

  1. texte XML avec des couleurs dans un RichTextBox
    Par TaymouWan dans le forum Windows Forms
    Réponses: 3
    Dernier message: 02/04/2009, 15h01
  2. saisir du texte avec des caracteres en langue arabe
    Par mouna201 dans le forum Delphi
    Réponses: 2
    Dernier message: 21/04/2007, 21h46
  3. [JSTL 1.0.6] affichage d'un texte avec des retour chariots
    Par clettebou dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 09/08/2006, 10h16
  4. Ecrire du texte avec des coordonnées 3D
    Par julian_ross dans le forum DirectX
    Réponses: 3
    Dernier message: 21/06/2005, 15h05
  5. [Javascript] Afficher du texte avec des intervalles
    Par Invité4 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 02/01/2005, 21h29

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