Bonjour,

Voici 2 problèmes

Je reviens avec ma question non solutionnée sur le format de chaque caractère

J'ai un texte formaté (décalage à gauche police couleur gras souligné ...). Il est placé dans un TRichEdit (memo1).

Ce que je voudrais faire c'est connaître tous les caractère en gras 'pour l'exemple) donc je consulte le format de chaque caractère
Voici mon code
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
24
25
26
27
28
for n:=0 to memo1.Lines.Count-1 do
      begin
        gras:=false;
        for t:=1 to length(memo1.Lines[n]) do
            begin
              memo1.SelStart := Perform(EM_LINEINDEX, n, 0) + t;
              if fsbold in memo1.SelAttributes.style then  //Traitement du gras.
                       begin
                         if not(gras) then
                            begin
                              reponse:=reponse+'#G#';
                              gras:=true;
                            end;
                       end else
                       begin
                         if gras then
                            begin
                              reponse:=reponse+'#PG#';
                              gras:=false;
                            end;
                       end;
               end;
              reponse:=reponse+copy(memo1.lines[n],t,1);
            end;
          memo2.lines.add(reponse);
          reponse:='';
      end;
  memo1.lines:=memo2.Lines;
Je lis ligne par ligne et je regarde caractère par caractère, quand toute ma ligne est regardée je met le résultat dans memo2 puis quand tout est finit je remet dans memo1

Le problème est que ça ne marche pas tout le temps ...

Si vous savez pour quoi ou si vous avez une meilleure idée merci de votre aide

Je voudrais faire la même chose mais uniquement pour le texte sélectionné

idem avec le memo1. Dans le tableau une cellule par caractère et une autre pour son format (gras ou normal)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
 txt:=memo1.SelText;
  w:=memo1.SelStart;
  tableau.ColCount:=length(txt);
 for n:=1 to length(txt) do
      begin
        tableau.cells[n-1,0]:=txt[n];
        memo1.selstart:=w-1;
        f:='Normal';
        if fsbold in memo1.SelAttributes.Style then
           f:='G.';
       tableau.cells[n-1,2]:=f;
    end;
Ici seul le format du premier caractère est pris en compte et donc ça ne marche pas ...

Merci pour votre aide