Formatera linjer i rik redigering med Delphis SelText & SelStart

TRichEdit Delphi-kontrollen är ett omslag för en Windows-redigeringskontroll för text. Du kan använda en Rich Edit-kontroll för att visa och redigera RTF-filer.

Medan du kan skapa trevligt användargränssnitt "runt" Rich Edit-kontrollen med verktygsfältets knappar för att ställa in och ändra textvisningsattribut, är det ganska besvärligt att lägga till formaterade rader till Rich Edit programmatiskt - som du kommer att se.

Hur man lägger till formaterade linjer i Rich Edit

Att skapa djärv text från ett urval av text som visas i Rich Edit-kontrollen, under körning måste du skapa ett avsnitt av text och sedan ställa in markeringens egenskaper till SelAttributes.

Men vad händer om du inte har att göra med ett urval av text och istället vill lägg till (bifoga) formaterad text till en Rich Edit-kontroll? Du kanske tror Rader egenskapen kan användas för att lägga till fet eller färgad text i Rich Edit. dock, Rader är en enkel TStrings och accepterar endast vanlig, oformaterad text.

Ge inte upp - naturligtvis finns det en lösning.

Titta på det här exemplet för lite hjälp:

 // richEdit1 av typen TRichEdit med richEdit1 do Börja // flytta caret till slut SelStart: = GetTextLen; // lägg till en oformaterad rad SelText: = 'Detta är den första raden' + # 13 # 10; // lägg till normal typsnitt SelText: = 'Formaterade rader i RichEdit' + # 13 # 10; // större text SelAttribut.Size: = 13; // lägg till fet + röd SelAttribut.Style: = [fsBold]; SelAttribut.Color: = clRed; SelText: = 'Om'; // endast fetstil SelAttribut.Color: = clWindowText; SelText: = 'Delphi'; // lägg kursiv + blå SelAttribut.Style: = [fsItalic]; SelAttribut.Färg: = clBlue; SelText: = 'Programmering'; //ny linje SelText: = # 13 # 10; // lägg till normal igen SelAttribut.Size: = 8; SelAttribut.Color: = clGreen; SelText: = 'tänk på anpassad procedur för AddFormattedLine ...'; slutet; 

För att starta, flytta caret till slutet av texten i Rich Edit. Använd sedan formatering innan du faktiskt lägger till den nya texten.