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 :

changer style font RichEdit


Sujet :

C++Builder

  1. #1
    Membre habitué Avatar de ac/dc
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2006
    Messages
    369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2006
    Messages : 369
    Points : 197
    Points
    197
    Par défaut changer style font RichEdit
    Bonjour, je voudrais dans une RichEdit mettre le premier mot ("salut") de ma ligne en gras noir et le reste de ma ligne en couleur et pas en gras.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    RichEdit1->DefAttributes->Style = RichEdit1->DefAttributes->Style << fsBold;
    RichEdit1->Text = RichEdit1->Lines->Text + "salut";
     
    RichEdit1->DefAttributes->Color = clRed;
    RichEdit1->Text = RichEdit1->Lines->Text + "reste de ma ligne";
    Le probleme est que tout est en rouge et en gras ?
    Let there be light, sound, drums, guitar ... Let there be rock !

  2. #2
    Membre éclairé Avatar de chamamo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    588
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 588
    Points : 735
    Points
    735
    Par défaut
    essaie ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    RichEdit1->DefAttributes->Color = clBlack;
    RichEdit1->DefAttributes->Style = RichEdit1->DefAttributes->Style << fsBold;
    RichEdit1->Text = RichEdit1->Lines->Text + "salut";
    RichEdit1->DefAttributes->Style = RichEdit1->DefAttributes->Style >> fsBold;
    RichEdit1->DefAttributes->Color = clRed;
    RichEdit1->Text = RichEdit1->Lines->Text + "reste de ma ligne";

  3. #3
    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 : 37
    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,

    Je viens d'essayer ton code chamamo mais tout reste rouge chez moi ...

    Il faut faire comme ceci (tiré de l'aide de C++ Builder) :

    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
    Cet exemple utilise un TRichEdit et un TButton. Laissez le texte par défaut, normalement "RichEdit1", dans la propriété Lines.  Les DefAttributes s'appliqueront à ce texte.
    
    void __fastcall TForm1::FormCreate(TObject *Sender)
    
    {
      RichEdit1->DefAttributes->Color = clBlue;
      RichEdit1->DefAttributes->Style =
      RichEdit1->DefAttributes->Style << fsBold << fsItalic;
    
    }
    
    void __fastcall TForm1::Button1Click(TObject *Sender)
    
    {
      RichEdit1->SelAttributes->Color = clRed;
      RichEdit1->SelAttributes->Height += 5;
      RichEdit1->Lines->Add("Cette ligne de texte sera en rouge. ");
    }
    Appliquer à ton code ca donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    void __fastcall TForm1::FormCreate(TObject *Sender)
    {
    RichEdit1->SelAttributes->Color = clBlack;
    RichEdit1->SelAttributes->Style = RichEdit1->DefAttributes->Style << fsBold;
    RichEdit1->Lines->Add("Salut");
     
    RichEdit1->SelAttributes->Color = clRed;
    RichEdit1->Lines->Add("reste de ma ligne.");
    }

  4. #4
    Membre éclairé Avatar de chamamo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    588
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 588
    Points : 735
    Points
    735
    Par défaut
    tout a fait raison je n'ai pas fait attention

  5. #5
    Membre habitué Avatar de ac/dc
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2006
    Messages
    369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2006
    Messages : 369
    Points : 197
    Points
    197
    Par défaut
    ah c'est super, merci !
    Let there be light, sound, drums, guitar ... Let there be rock !

  6. #6
    Membre habitué Avatar de ac/dc
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2006
    Messages
    369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2006
    Messages : 369
    Points : 197
    Points
    197
    Par défaut
    j'ai encore une ptite question: a chaque
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    RichEdit1->Lines->Add(" ... ");
    il fait un retour chariot, alors comment faire 2 fois ce bout de code sans qu'il passe à la ligne ?
    Let there be light, sound, drums, guitar ... Let there be rock !

  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 : 37
    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
    Re,

    Avant toute chose, j'aimerai avoir quelques infos supplémentaires :
    - Est ce que la première ligne de ton RichEdit sera toujours Bonjour?
    - Quelle est la couleur par défaut que ton RichEdit doit prendre (je vois que le reste de ta ligne doit être en rouge ... )
    - Que contiendra par la suite ton richEdit?

    Merci

    EDIT :

    Je te post un code en espérant que cela t'aide

    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
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
        //Par defaut, ecrit en rouge
        RichEdit1->Font->Color = clRed;
        //Ecrit la phrase
        RichEdit1->Lines->Add("Salut la fin de la phrase");
        //Sélectionne la 1ère lettre (index 0)
        RichEdit1->SelStart=0;
        //Sélectionne 5 lettres de long
        RichEdit1->SelLength=5;
        //Met en noir et en gras la sélection
        RichEdit1->SelAttributes->Color=clBlack;
        RichEdit1->SelAttributes->Style =
        RichEdit1->SelAttributes->Style << fsBold;
        //Met le curseur à la fin du RichEdit
        RichEdit1->SelStart=RichEdit1->Text.Length();
    }

  8. #8
    Membre habitué Avatar de ac/dc
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2006
    Messages
    369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2006
    Messages : 369
    Points : 197
    Points
    197
    Par défaut
    En fait je dois avoir ceci dans mon RichEdit1:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Edit1->Text :  Edit2->Text  retour chariot
    Edit1->Text :  Edit2->Text  retour chariot
    ...
    et ainsi de suite car Edit1->Text et Edit2->Text change
    Let there be light, sound, drums, guitar ... Let there be rock !

  9. #9
    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 : 37
    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
    Dans ce cas, je te propose 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
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
        //Par defaut, ecrit en rouge
        RichEdit1->Font->Color = clRed;
    }
    //---------------------------------------------------------------------------
     
    void __fastcall TForm1::BtnAjouterClick(TObject *Sender)
    {
      //Ecrit la phrase
      RichEdit1->Lines->Add(Edit1->Text+ ": " + Edit2->Text);
      //Sélectionne la 1ère lettre (index 0)
      RichEdit1->SelStart=0;
      //Sélectionne la longeur de texte correspondant au Edit1
      RichEdit1->SelLength=Edit1->Text.Length();
      //Met en noir et en gras la sélection
      RichEdit1->SelAttributes->Color=clBlack;
      RichEdit1->SelAttributes->Style =
      RichEdit1->SelAttributes->Style << fsBold;
      //Met le curseur à la fin du RichEdit
      RichEdit1->SelStart=RichEdit1->Text.Length();
    }

  10. #10
    Membre habitué Avatar de ac/dc
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2006
    Messages
    369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2006
    Messages : 369
    Points : 197
    Points
    197
    Par défaut
    le code fonctionne suelement pour la premiere ligne, pour la 2eme et les suivantes tout le texte est en rouge
    Let there be light, sound, drums, guitar ... Let there be rock !

  11. #11
    Membre habitué Avatar de ac/dc
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2006
    Messages
    369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2006
    Messages : 369
    Points : 197
    Points
    197
    Par défaut
    ah non c'est bon si c'est la premiere fois que l'on affiche dans le RichEdit, alors:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    RichEdit1->SelStart = 0;
    sinon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    RichEdit1->SelStart = RichEdit1->Text.Length() - (Edit1->Text.Length() + strlen(": ") + Edit2->Text.Length() + 2);
    merci tout de meme !
    Let there be light, sound, drums, guitar ... Let there be rock !

Discussions similaires

  1. Feuille de style dans RichEdit
    Par gla06 dans le forum Composants VCL
    Réponses: 9
    Dernier message: 08/05/2006, 22h30
  2. Changer la fonte pour une application
    Par Xavinou dans le forum Interfaces Graphiques en Java
    Réponses: 9
    Dernier message: 21/03/2006, 11h23
  3. .style.font-weight='bold' en JS
    Par SpaceFrog dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 05/12/2005, 13h48
  4. changer style ou class par le code
    Par genetechno dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 08/07/2005, 10h12
  5. TextOut : comment changer de font
    Par Freakazoid dans le forum DirectX
    Réponses: 2
    Dernier message: 15/07/2002, 20h46

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