Wenn dies Ihr erster Besuch hier ist,
lesen Sie bitte zuerst die Hilfe - Häufig gestellte Fragen
durch. Sie müssen sich vermutlich registrieren,
bevor Sie Beiträge verfassen können. Klicken Sie oben auf 'Registrieren', um den Registrierungsprozess zu
starten. Sie können auch jetzt schon Beiträge lesen. Suchen Sie sich einfach das Forum aus, das Sie am meisten
interessiert.
Ich such eine Methode mit der man 2 (oder mehrere) vollständige RichText Streams zu einem Stream verbinden kann. Optimal wäre es, wenn keine RichEdit Komponente benötigt wird. Weiss da jemand einen Rat?<BR>
Peter
Eine Lösung mit RichEdit-Control könnte ungefähr so aussehen:<BR>
<PRE>
function EditStreamInCallback(dwCookie: Longint; pbBuff: PByte;
cb: Longint; var pcb: Longint): Longint; Stdcall;
var
theStream: TStream;
dataAvail: LongInt;
begin
theStream := TStream(dwCookie);
with theStream do begin
dataAvail := Size - Position;
Result := 0;
if dataAvail <= cb then begin
pcb := Read(pbBuff^, dataAvail);
if pcb <> dataAvail then
result := E_FAIL;
end
else begin
pcb := Read(pbBuff^, cb);
if pcb <> cb then
result := E_FAIL;
end;
end;
end;
Procedure PutRTFSelection( aRichEdit: TRichEdit; sourceStream: TStream );
Var
editstream: TEditStream;
Begin
With editstream Do Begin
dwCookie:= Longint(sourceStream);
dwError:= 0;
pfnCallback:= EditStreamInCallBack;
end;
aRichedit.Perform( EM_STREAMIN, SF_RTF or SFF_SELECTION,longint(@editstream));
End;
</PRE>
<BR>
Eine Lösung unter Verzicht auf eine TRichEdit-Komponente habe ich bisher nicht gefunden. <BR>
Pete
Es sollte eigentlich genuegen die aeussere rtf-Tag-Klammer zu entfernen, die Teile zu konkatenieren und dann wieder eine rtf-Tag-Klammer aussen rum zu setzen. Zumindest hat eben ein Experiment mit Word 97 geklappt. Das einzige Problem duerften die moeglichen Variationen der Klammerung sein
Damit bekäme der neue RTF sowohl den "Vorspann" (\rtf1\ansi\...)des alten als auch den des anzuhängen RTF-Files. So einfach geht das also nicht. Man müsste also wissen, wo der Vorspann genau endet. Ich habe aber leider nirgends eine Spezifikation zu RTF gefunden
Wo ist das Problem? Es muss nur das "\rtf1" entfernt werden. Da RTF wie HTML eine kontextfreie Sprache ist (ineinandergeschachtelte geklammerte Bloecke), koennen also die beiden Bloecke konkateniert und mit einer neuen rtf1-Klammer versehen werden. Die Klammern geben ja nur den Gueltigkeitsbereich der darinliegenden Tags an. Einen "Vorspann" gibt es nicht. Es ist nur die rtf-Klammer vorgeschrieben
Moin Zusammen,<br>
<br>
bei Dateiformaten würde ich immer www.wotsit.org vorschlagen.<br>
Da gibt's sehr viele Beschreibungen (u.a. auch RTF).<br>
<br>
Ciao<br>
Chri
Comment