Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   RTF-Code auslesen. (https://www.delphipraxis.net/85912-rtf-code-auslesen.html)

SirRobert 6. Feb 2007 20:34


RTF-Code auslesen.
 
Hallo zusammen,

ich habe eine Frage:

über lines.add übergebe ich einer Richedit-Komponente einen String
(plaintext:= false)
Diesen gehe ich wortweise durch und markiere bestimmte Worte mit [fsBold].
Nach getaner Arbeit, hätte ich gerne den gesamten RTF-Code, der dadurch
entstanden ist als String zurück! Leider klappt es nicht!

Setze ich plaintext:= true, liefert richedit.text einfach nur den
unformatierten String zurück.

Was mache ich falsch? Steckt da irgendwo ein Denkfehler?
Ich werde diesen String doch nicht erst in einer Datei speichern müssen...
oder? :shock:


Ich danke Euch im voraus!

Grüße

Robert

xaromz 6. Feb 2007 20:51

Re: RTF-Code auslesen.
 
Hallo,

Du musst die Daten direkt aus dem Control extrahieren. Versuch mal folgenden Code:
Delphi-Quellcode:
uses
  RichEdit;

...

function StringSave(dwCookie: Longint; pbBuff: PByte;
  cb: Longint; var pcb: Longint): Longint; stdcall;
var
  S: PString;
begin
  Result := NoError;

  S := PAnsiString(dwCookie);
  try
    S^ := S^ + PChar(pbBuff);
    pcb := cb;
  except
    Result := $0002; // WriteError
  end;
end;

function SaveRichEditToString(RichEdit: TRichEdit): AnsiString;
var
  EditStream: TEditStream;
  TextType: LongInt;
  S: AnsiString;
begin
  try
    with EditStream do
    begin
      dwCookie := Integer(@S);
      pfnCallBack := @StringSave;
      dwError := 0;
    end;
    if RichEdit.PlainText then
      TextType := SF_TEXT
    else
      TextType := SF_RTF;
    SendMessage(RichEdit.Handle, EM_STREAMOUT, TextType, Longint(@EditStream));
  finally
    Result := S;
  end;
end;
Gruß
xaromz

SirRobert 6. Feb 2007 20:59

Re: RTF-Code auslesen.
 
Hallo xaromz,


:hello: was soll ich sagen... SUPER-DANKE!!!! :thumb:

It works!


Schöne Grüße

Robert

DP-Maintenance 6. Feb 2007 22:00

DP-Maintenance
 
Dieses Thema wurde von "Christian Seehase" von "Programmieren allgemein" nach "VCL / WinForms / Controls" verschoben.
Ein Delphi-Problem

Lannes 6. Feb 2007 22:21

Re: RTF-Code auslesen.
 
Hallo,

oder so: Link


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:44 Uhr.

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