Bonjour,
J'ai besoin d'un utiliser un RichMemo sous forme de treeview pour mettre en avant (en rouge) certaines parties du texte (ce qui suit le symbole &).
Avec la fonction SetTextAttributes et le bon algo, ça se passe très bien :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9sMemo := RichMemo1.Lines.Text; iPosMariage := 0; while sMemo.IndexOf('&',iPosMariage) <> -1 do begin iPosMariage := sMemo.IndexOf('&',iPosMariage); if (sMemo[iPosMariage+1] <> '') then RichMemo1.SetTextAttributes(iPosMariage+1,4,aFontWedding); iPosMariage := iPosMariage+1 end;
Là où ça se corse, c'est qu'au lieu d'utiliser les accolades et crochets, je cherche à utiliser des caractères plus esthétiques (tels que ─,└,├ et ┬) pour que ça ait vraiment un aspect treeview
Avec un memo standard, ça donne ça :
Mais ces caractères sont stockés sur 3 octets donc :
- Si j'alimente mon richmemo avec ces caractères PUIS que je cherche ensuite à changer la couleur, la fonction SetTextAttributes qui a besoin des positions ne s'applique pas au bon endroit (il y a un décalage dans les endroits colorisés).
- Si je colorise proprement mes lignes PUIS que j'appelle des fonctions de typepour remplacer les caractères 'pas beaux' par les 'beaux', je perds les attributs de ma ligne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part StringReplace(RichMemo1.Lines.text,'-','─',[rfReplaceAll])
Je n'ai pas trouvé de méthode pour intervenir sur mon richmemo sans impacter ses attributs. Si quelqu'un a une idée...![]()








Répondre avec citation


Partager