Tech-Ecke / Delphi Inhalt / TRichEdit

 

     TRichEdit

 

   Grundlegendes

Die TRichEdit Komponente ist im Grunde eine TMemo mit erweitertem Funktionsangebot.

Der Inhalt (Text) eines RichEdit ist ein String (S := RichEdit1.Text). Jede einzelne Zeile (Lines) für sich betrachtet ist jedoch auch ein String. Mit "S := RichEdit1.Lines[0]" kopiert man die erste Zeile in die Variable S, die vom Typ String ist. Es gelten alle Operationen die für einen String gelten > siehe Stringoperationen. Tausche dazu einfach das "S" in den Beispielen durch RichEdit1.Lines[X] (wobei X die Zeile der RichEdit ist).

Länge des Textes in einer TRichEdit-Zeile (Lines) ermitteln > siehe Stringoperationen

Inhalt eines in einer TRichEdit-Zeile (Lines) zurechtschneiden > siehe Stringoperationen

Nach einem Zeichen oder Teilstring in einer TRichEdit-Zeile (Lines) suchen > siehe Stringoperationen

Zuweisen von Textzeilen ( var S: String;)

   RichEdit1.Lines.Add ('ich bin ein TEdit');   oder    RichEdit1.Lines.Add(S);
 

Auslesen einer Zeile ( var S: String;)

   Edit1.Text := RichEdit1.Lines[0] // liest den Inhalt der ersten Zeile in Edit1
        S := RichEdit1.Lines[1] // liest den Inhalt der zweiten Zeile in die Variable S
 

Zuweisen einer Integer - Zahl ( var Zahl: Integer; )  [sieh auch > Umwandeln von Variablen]

   RichEdit1.Lines.Add(IntToStr(Zahl));
 

   Eintrag nur dann hinzufügen wenn dieser nicht vorhanden ist ( var S: String;)

   S := ('hinzufügen wenn nicht bereits enthalten');
 
if RichEdit1.Lines.IndexOf(S) = -1 then RichEdit1.Lines.Add(S);
 

   Löschen einer Zeile (Items)

   RichEdit1.Lines.Delete(0);  //löscht die erste Zeile
 

   Kompletten Inhalt löschen

   RichEdit1.Clear;  //löscht alle Zeilen
 

   Suchen nach Eintrag

   

var
    Zeile:
String;

Zeile := RichEdit1.Lines.IndexOf(
'Suchwort')


// wird ‚Suchwort’ nicht als Eintrag (komplette Zeile) in ListBox1 gefunden ist der Ausgabewert in Variable Zeile -1
// wird ‚Suchwort’ in ListBox1 gefunden, enthält die Variable Zeile die erste Zeile in der ‚Suchwort’ gefunden wird

 

   Inhalt aus Datei laden

   RichEdit1.Lines.LoadFromFile('Datei.txt'); // hier wäre es angebracht die Anweisung in ein "try except" zu packen > sieh hier
 

   Inhalt in Datei speichern

   RichEdit1.Lines.SaveToFile('Datei.txt'); // hier wäre es angebracht die Anweisung in ein "try except" zu packen > sieh hier

 RichEdit1.Items.SaveToFile('Datei.txt', TEncoding.ASCII); // in ASCII Zeichenkodierung
 RichEdit1.Items.SaveToFile('Datei.txt', TEncoding.UTF8); // in UTF8 Zeichenkodierung
 

   Anzahl der Zeilen (Items) ermitteln

   var
    Zeilen: Integer;

Zeilen := RichEdit1.Lines.Count;
 

   TPopupMenu einbinden

Zunächst eine TPopupMenu Komponente auf das Form ziehen. Danach bei der entsprechenden ListBox im Objektinspektor unter Ereignisse ins Feld PoupMenu klicken und das entsprechende PopupMenu auswählen. Nun durch einen Doppelklick auf die PopupMenu Komponente einen Eintrag hinzufügen (Objektinsektor muss dazu auf Eigenschaften stehen und der Cursor im Feld Caption stehen).

   Format eines Teilstrings ändern

   RichEdit1.SelStart := 0; // Startposition der Markierung
RichEdit1.SelLength := 6;
// Ende der Markierung
RichEdit1.SelAttributes.Style := [fsbold];
// Markierung fett drucken
RichEdit1.SelLength :=
0; // Markierung beenden
 

   Einfärben bestimmter Buchstaben oder Wörter im gesamten Text  // posex benötigt StrUtils in uses!

   var
     i,x: Integer;

for i := 1 to length(RichEdit1.text) do
    
begin
        x := posex(
'e', RichEdit1.text,x)+1;
        RichEdit1.SelStart:=
posex('e', RichEdit1.text,x)-1;
        RichEdit1.SelLength:=
1;                        // 1 muss angepasst werden bei Zeichenkette
        RichEdit1.SelAttributes.Color:=clRed;
end;

Möchte man nun nach einer Buchstabenkette suchen, so gibt man diese anstatt dem 'e' (2x vorhanden) ein und ändert die oben genannte Eins entsprechend der Länge der Zeichenkette.

   Nur Lesezugriff gewähren

   RichEdit1.ReadOnly := true;
 

Die Option Drucken funktioniert erst ab Netscape V4.0 bzw. I-Explorer 5.0 !

[letzte Aktualisierung 09.10.2006]