Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Library: Sonstiges (https://www.delphipraxis.net/45-library-sonstiges/)
-   -   Delphi RichTextFormat von einem Richtext in ein anderes übertragen (https://www.delphipraxis.net/75657-richtextformat-von-einem-richtext-ein-anderes-uebertragen.html)

Angel4585 23. Aug 2006 07:22


RichTextFormat von einem Richtext in ein anderes übertragen
 
Hallo,

ich hab wochenlang nach einer Möglichkeit gesucht wie ich formatierten Text von einem Richtext in ein anderes bekomme.

Hintergrund: ich programmiere ein Onlinegame mit Delphi in dem die Spieler über eine Art Shoutbox/Chat miteinander kommunizieren können. Da mir eine festegelegte Schriftart auf Dauer zu wenig war dachte ich mir, da ich ja JvRichEdits verwende und in denen der Textformatiert werden kann, muss ich diesen formatierten Text auch irgendwie samt Formatierung auslesen und übertragen können.

Letzen Endes habe ich von Sko der dafür in seinem MiniChat ebenfalls JvRichEdits verwendet folgenden Code bekommen:

Delphi-Quellcode:
function GetRTFText(NRichEdit: TJvRichedit): string;
var
  ss: TStringStream;
  leer: string;
begin
  leer := '';
  ss := TStringStream.Create(leer);
  try
    NRichEdit.Lines.SaveToStream(ss);
    Result := ss.DataString;
  finally
    ss.Free
  end;
end;

//Empfangsprozdedur
begin
  ...
  JvRichEdit2.Lines.Add(EmpfNachricht);  //EmpfNachricht ist der empfangene String
  ...
end;
Ich habe das jetzt eingebaut und es funktioniert perfekt. :thumb:

An dieser Stelle einen herzlichen Dank an Sko :cheers:

MfG :angel:

Lannes 23. Aug 2006 09:38

Re: RichTextFormat von einem Richtext in ein anderes übertra
 
Hallo,

die "Empfangsprozdedur" erzeugt beim Standard-Richedit eine EOutOfResources-Exception.

Beim Standard-Richedit kann SetRTFToRichEdit Link genutzt werden.

Lannes 23. Aug 2006 13:30

Re: RichTextFormat von einem Richtext in ein anderes übertra
 
Hallo,

der Link bezog sich mehr auf den Titel "RichTextFormat von einem Richtext in ein anderes übertragen" und weiter im Beitrag"... von einem Richtext in ein anderes bekomme.."

Will man hinzufügen(kombinieren), dann hat man folgende Möglichkeiten:

- ab Windows 2000 und XP (dann wird die Riched20.dll genutzt):
Delphi-Quellcode:
//anhängen, sonst SelStart auf Einfügeposition setzen
RichEdit.SelStart := Length(RichEdit.Text);
RichEdit.SelText := aRTFString;
- bei älteren Systemen (riched32.dll) ist man auf EM_STREAMOUT, EM_STREAMIN angewiesen:

toms hat da Link entsprechenden Code gepostet.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:13 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz