Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - RichEdit - RTF-Formatierung einzelner Zeilen


galagher - Mo 16.07.12 17:42
Titel: RichEdit - RTF-Formatierung einzelner Zeilen
Hallo!

Wie ich an die RTF-Formatierung des gesamten Textes eines TRichEdits komme, weiss ich, da kann man einiges mit Google finden:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
function GetRichText(const JvRichEdit: TJvRichEdit): String;
var
  StrS : TStringStream;
begin
  StrS := TStringStream.Create('');
  try
    JvRichEdit.Lines.SaveToStream(StrS);
    Result := StrS.DataString;
  finally
    StrS.Free;
  end;
end;

Wie aber lese ich einzelne Zeilen samt RTF-Formatierung aus? JvRichEdit.Lines[0].SaveToStream(StrS) geht ja nicht. Ich brauche nicht nur den Text, den man sieht, sondern eben den RichText einzelner Zeilen!
Habt ihr eine Idee?


bummi - Mo 16.07.12 20:29

Das wird nicht so einfach gehen da ja ich nenne es im Folgenden mal Tags irgendwo z.B. in Zeile 1 der erste in Zeile 2 der Zweite aufgehen können der dann in der zu kopieren Zeile 3 in der Mitte wieder zugeht.
Wenn Du über das Control selektierst, über die Zwischenablage kopierst solltest Du in ein weiteres Control eifügen können und das dann speichern.


galagher - Di 17.07.12 16:45

user profile iconbummi hat folgendes geschrieben Zum zitierten Posting springen:
Das wird nicht so einfach gehen da ja ich nenne es im Folgenden mal Tags irgendwo z.B. in Zeile 1 der erste in Zeile 2 der Zweite aufgehen können der dann in der zu kopieren Zeile 3 in der Mitte wieder zugeht.
Verstehe, was du meinst.

user profile iconbummi hat folgendes geschrieben Zum zitierten Posting springen:
Wenn Du über das Control selektierst, über die Zwischenablage kopierst solltest Du in ein weiteres Control eifügen können und das dann speichern.
Ja, über die Zwischenablage funktioniert es, ist aber keine gute Lösung!

Wie kann man das kopieren in die Zwischenablage nachbilden? Beim Versuch, eine Instanz TClibBoard zu erstellen und nach einigen Delphi-Fehlermeldungen ist mir gerade der Rechner abgestürzt, oder hatte das andere Günde?
Also: CopyToClipBoard und PasteFromClipBoard funktioniert, welche anderen Möglichkeiten gibt es?