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

  1. #1
    Nouveau membre du Club
    Inscrit en
    juin 2002
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : juin 2002
    Messages : 28
    Points : 26
    Points
    26
    Par défaut [Resolu][Composants] TRichEdit: Une police pour chaque ligne
    Bonjour a tous !
    Je veux faire un petit programme de chat qui permet d’afficher sur la même « RICHEDIT » un texte de diffèrent , styles , taille , couleurs …etc. autrement dit associer a chaque ligne sa propre police !comment faire ?
    merci

  2. #2
    Membre chevronné
    Avatar de Gilles Louïse
    Profil pro
    Inscrit en
    mars 2002
    Messages
    421
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : mars 2002
    Messages : 421
    Points : 1 879
    Points
    1 879
    Par défaut
    Il faut utiliser la propriété SelStart pour définir le debut de la sélection (0=premier caractère), SelLength pour définir la longueur de la sélection et SelAttributes->Name pour définir le nom de la police. Par exemple pour mettre en police Arial rouge taille 15 les deux premiers caractères du RichEdit on écrira :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    RichEdit1->SelStart=0;
    RichEdit1->SelLength=2;
    RichEdit1->SelAttributes->Name="Arial";
    RichEdit1->SelAttributes->Color=clRed;
    RichEdit1->SelAttributes->Size=15;
    Dans votre cas, il faudra donc calculer le numéro du premier caractère de chaque ligne ainsi que la longueur de la ligne pointée puis y appliquer les paramètres voulus.

    À bientôt
    Gilles

  3. #3
    Membre habitué
    Avatar de Alacazam
    Profil pro
    Inscrit en
    septembre 2002
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : septembre 2002
    Messages : 88
    Points : 166
    Points
    166
    Par défaut
    Salut,

    La méthode est bien celle décrite par Gilles Louïse.

    Si tu souhaites un bout de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for (int i= 0 ; i < RichEdit1->Lines->Count ; i++) {
    	RichEdit1->SelStart = RichEdit1->Perform(EM_LINEINDEX, i, 0);
    	RichEdit1->SelLength = RichEdit1->Lines->Strings[i].Length();
    	RichEdit1->SelAttributes->Size=2*i+6;
    	}
    Cela t'éviteras peut-être une recherche sur Perform et les EM_messages dans l'aide de la VCL

    Bonne Continuation
    Mathieu

    P.S. Et si c'est bon ... pense au [Resolu], merci
    Développeur confirmé C++, Java, Python, JS.

  4. #4
    Nouveau membre du Club
    Inscrit en
    juin 2002
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : juin 2002
    Messages : 28
    Points : 26
    Points
    26
    Par défaut
    re !
    Merci a vous c 'est parfait avec juste une petit manip a ajouter car c dans le cadre d un client de messagerie instantanée ! merci encore
    merci

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

Discussions similaires

  1. vba écrire une cellule pour chaque ligne écrite
    Par Chris171717 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 14/03/2013, 12h53
  2. Une requête pour chaque ligne de la table
    Par Nasky dans le forum Langage SQL
    Réponses: 3
    Dernier message: 08/05/2012, 12h16
  3. [XL-2003] exécuter une macro pour chaque ligne.
    Par visto94 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/07/2010, 14h48
  4. [MySQL] Calculer une somme pour chaque ligne et colonne d'un tableau
    Par baggie dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 21/05/2010, 10h55
  5. Réponses: 1
    Dernier message: 30/11/2009, 16h29

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