Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - RichEdit1.SelAttributes setzen bei RichEdit1.Lines.Add


galagher - Mi 04.10.06 19:03
Titel: RichEdit1.SelAttributes setzen bei RichEdit1.Lines.Add
Hallo!

Ich füge mit Add Zeilen in ein RichEdit ein und möchte, dass alle Zeichen innerhalb von Klammern ( ) und die Klammern selbst kursiv dargestellt werden. Text ausserhalb der Klammern soll keine besonderen Attribute haben.

Ich habe also einfach:

Delphi-Quelltext
1:
2:
RichEdit1.Lines.Add(S); //S enthält Text mit oder ohne Klammern
//und wie werden der Text innerhalb der Klammern und die Klammern nun kursiv?


Komme nicht weiter...


Flocke - Mi 04.10.06 22:48

Wenn du wechseln formatierten Text in ein RichEdit einfügen willst, dann bietet es sich an, mit SelText anstatt mit Lines zu arbeiten. Dazwischen kannst du dann jeweils die Formatierung ändern.

Beispiel:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
// Den Cursor ans Ende bewegen
RichEdit1.SelStart := RichEdit1.GetTextLen;

// Nicht fett
RichEdit1.SelAttributes.Style := RichEdit1.SelAttributes.Style - [fsBold];

// Text hinzufügen
RichEdit1.SelText := 'Text ohne Klammer(';

// Ab hier fett
RichEdit1.SelAttributes.Style := RichEdit1.SelAttributes.Style + [fsBold];

// Noch mehr Text
RichEdit1.SelText := 'in der Klammer';

// Nicht mehr fett
RichEdit1.SelAttributes.Style := RichEdit1.SelAttributes.Style - [fsBold];

// Text hinzufügen (mit Zeilenumbruch)
RichEdit1.SelText := '('#10;


Du musst dir dann nur noch die öffnenden und schließenden Klammern heraussuchen.


galagher - Fr 06.10.06 15:50

Danke, so hab' ich's gemacht, garniert mit BeginUpdate/EndUpdate klappt das jetzt sehr gut! :D