Bonjour,
est-il possible de transformer tout ou partie d'un texte dans un TEdit
dans une couleur différente que n'est définie celle du TEdit.
Ex: Merci
Merci d'avance.
BB
Bonjour,
est-il possible de transformer tout ou partie d'un texte dans un TEdit
dans une couleur différente que n'est définie celle du TEdit.
Ex: Merci
Merci d'avance.
BB
Salut,
Peux tu nous en dire un peu plus sur ce que tu souhaites faire?
Dans ton TEdit, le changement de couleur doit se faire automatiquement, par rapport à une position précise, ...
Eclaire nous
Salut,
oui à partir d'une position précise.
C'est-à-dire que j'ai une base de données de laquelle j'extrais des terminaisons de mots.
Dans le programme j'ai une variable string de base par exemple en noir
et je veux ajouter à cette chaîne une chaîne de la base de données en rouge
par exemple.
Voilà et merci
BB
Avec un TEdit j'en doute,
parcontre avec un TRichEdit..
l'idée est de selectionner le bout de texte à changer de couleur.
voilà:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 //Par defaut, ecrit en noir et normal RichEdit1.DefAttributes.Color := RGB(0,0,0); RichEdit1.DefAttributes.Style:=[]; //Ecrit le mot Merci RichEdit1.Text:='Merci'; //Selectionne la 4eme lettre (index 0) RichEdit1.selstart:=3; //Selectionne 2 lettres de long RichEdit1.SelLength:=2; //Met en rouge et en gras la selection RichEdit1.SelAttributes.Color:=rgb(255,0,0); RichEdit1.SelAttributes.Style:=[fsBold];
Bonsoir,
Je trouve l'idée d'Eric Boisvert intéressante.
Aussi, je rajouterai une ligne supplémentaire afin de me trouver à la fin du RichText :
Ensuite, concernant tes terminaisons de mots, on sait déjà à l'avance la position de départ de sélection de la terminaison?
Code : Sélectionner tout - Visualiser dans une fenêtre à part RichEdit1.SelStart:=Length(RichEdit1.Text);
Tu recherches à faire comme dans le forum? Mettre en rouge un texte que l'on recherche?
J'espère que ca t'aidera
@ +
Salut à tous !
Si cela peut aider, voici une démo de coloration syntaxique avec un RichEdit. Le programme scanne le texte et colorise les mots choisis :
http://sub0.developpez.com/delphi/syntax.zip
Merci à vous,
en fait j'essaye de représenter un tableau de valeurs avec certaines d'entre elles en couleur.
En gros la page ressemble un peu à celle qu'on aurait en tapant un verbe dans http://www.leconjugueur.com/.
Mais il y a peut-être mieux que les TrichEdit à partir du moment où c'est un tableau; je sais pas trop quel est le meilleur moyen en fait.(TStringrid?)
Merci
BB
Le plus important dans tout ça (selon moi) n'est pas trop quel conteneur du va choisir (StringGrid, DrawGrid ou RichEdit) mais plutôt comment tu vas faire pour détecter les mots ou lettres à colorer et comment tu vas les stocker dans ton programme (constantes ou fichiers) - Le principe de détection reste le même dans tous les cas, mais il est vrai que ce sera plus rapide avec un tableau car tu n'as pas à parcourir tout le texte du début à chaque détection, mais uniquement le texte contenu dans la cellule à dessiner. Je te conseille donc l'utilisation d'un StringGrid :
Avec l'évènement OnDrawCell du StringGrid, tu peux décider de ce que tu veux dessiner dans chaque cellule. Il faut d'abord mettre la propriété DefaulDrawing à False et double cliquer sur OnDrawCell pour créer automatiquement la procédure correspondante dans ton code. Dans cette procédure, tu affiches le texte de chaque cellule via le Canvas de la grille, exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); Begin StringGrid1.Canvas.Brush.Color := clRed; StringGrid1.Canvas.TextOut(Rect.Left, Rect.Top, StringGrid1.Cells[ACol, ARow]); End;
Merci les amis,
finalement comme mon application n'était pas répétive, j'ai opté pour le TRichEdit car en fait une partie de la chaîne de caractère devait changer
de couleur et non toute celle-ci (si je t'ai bien compris Sub0).
Merci
BB
Partager