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 �clair� 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 : 38
    Localisation : France

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

    Informations forums :
    Inscription : Ao�t 2006
    Messages : 369
    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 ?

  2. #2
    Membre �m�rite 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
    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 : 39
    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
    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 �m�rite 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
    Par d�faut
    tout a fait raison je n'ai pas fait attention

  5. #5
    Membre �clair� 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 : 38
    Localisation : France

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

    Informations forums :
    Inscription : Ao�t 2006
    Messages : 369
    Par d�faut
    ah c'est super, merci !

  6. #6
    Membre �clair� 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 : 38
    Localisation : France

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

    Informations forums :
    Inscription : Ao�t 2006
    Messages : 369
    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 ?

  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 : 39
    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
    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 �clair� 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 : 38
    Localisation : France

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

    Informations forums :
    Inscription : Ao�t 2006
    Messages : 369
    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

  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 : 39
    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
    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 �clair� 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 : 38
    Localisation : France

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

    Informations forums :
    Inscription : Ao�t 2006
    Messages : 369
    Par d�faut
    le code fonctionne suelement pour la premiere ligne, pour la 2eme et les suivantes tout le texte est en rouge

  11. #11
    Membre �clair� 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 : 38
    Localisation : France

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

    Informations forums :
    Inscription : Ao�t 2006
    Messages : 369
    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 !

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