2009-12-31 5 views

Répondre

3

Vous pouvez utiliser la dernière ligne elle-même, ou le contenu entier:

// RE = TRichEdit, Temp = string; 
// Last line only 
Temp := RE.Lines[RE.Lines.Count - 1]; 
Temp := Temp + ' plus some new text'; 
RE.Lines[RE.Lines.Count - 1] := Temp; 

// The entire content 
Temp := RE.Text; 
Temp := Temp + ' plus some new text'; 
RE.Text := Temp; 

Notez que la première est meilleure, surtout quand le RichEdit contient une grande quantité de texte. Lire et écrire sur RichEdit.Text peut impliquer de déplacer beaucoup de texte dans la mémoire.

EDIT: Après le commentaire de l'OP à ma réponse:

Pour formater le texte, enregistrez SelStart avant d'ajouter, puis utiliser SelLength et SelAttributes pour appliquer la mise en forme:

// StarPos and Len are both Integers. 
StartPos := Length(RE.Text); 
Len := Length(YourNewTextToBeAdded); 
// Do stuff here to add text 
RE.SelStart := StartPos; 
RE.SelLength := Len; 
RE.SelAttributes.Style := RE.SelAttributes.Style + [fsBold]; 
+0

Je l'ai essayé et ça a marché. Merci beaucoup. Mais maintenant, comment puis-je formater ce texte ajouté. –

1

Vous pouvez utiliser les propriétés "Strings" et "Count".

RichEdit1.Lines.Strings [RichEdit1.Lignes.Count-1]: = RichEdit1.Lines.Strings [RichEdit1.Lignes.Count-1] + 'Texte';

+0

Lines.Strings [] et Lines [] sont la même chose; Lignes est une propriété par défaut qui lit et écrit Lines.Strings. –

1

Effectuer

with RichEdit1 do 
begin 
Lines.Add(s); 
Perform(EM_SCROLL, SB_LINEDOWN, 0); 
end; 
Questions connexes