我使用以下方法連接兩個單獨的RTF文本,並最終在TcxCustomRichEdit
控件上顯示結果。它從多年來完美運作。現在我需要在RTF文本中支持圖片。 問題是當TcxCustomRichEdit
控件中存在圖像時,它會連接,但只是排除圖像。合併2 RTF文本與圖像
我該如何做到這一點?
示例代碼:示例代碼從http://delphi.about.com/od/tmemotrichedit/a/richedit-append.htm截取和修改
在代碼,你可以看到,有兩個TcxCustomRichEdit
放置並終於之後級聯結果示於首先TcxCustomRichEdit
控制。
Procedure AppendFromRichEdit(FromRch,ToRch: TcxCustomRichEdit); // Function to append rich edit text from source to Destination
var
MemStream: TMemoryStream;
rtfStream: TEditStream;
function EditStreamReader(
dwCookie: DWORD;
pBuff: Pointer;
cb: LongInt;
pcb: PLongInt): DWORD; stdcall;
begin
result := $0000;
try
pcb^ := TStream(dwCookie).Read(pBuff^, cb) ;
except
result := $FFFF;
end;
end; (*EditStreamReader*)
begin
MemStream := TMemoryStream.Create;
try
with FromRch as TcxCustomRichEdit do Begin
Lines.SaveToStream(MemStream);
end;
MemStream.Position := 0;
rtfStream.dwCookie := DWORD(MemStream) ;
rtfStream.dwError := $0000;
rtfStream.pfnCallback := @EditStreamReader;
Try
ToRch.InnerControl.Perform(
EM_STREAMIN,
SFF_SELECTION or SF_RTF or SFF_PLAINRTF, LPARAM(@rtfStream)
) ;
if rtfStream.dwError <> $0000 then
raise Exception.Create(TranslateQBMessage('QBToolsErrorAppendingRTFData'));
except
On E: Exception do
// do nothing MsgBox(E.Message)
end;
finally
MemStream.Free;
end;
end;
procedure ConcatenateAndShow;
var
redTemp: TcxRichEdit;
begin
try
redTemp := TcxRichEdit.Create(memTesto.Owner);
redTemp.Parent := memTesto.Parent;
redTemp.Visible := False;
redTemp.Clear;
redTemp.Text := MySecondRichEditControl.Text; //Text in Second Rich Edit Control
AppendFromRichEdit(redTemp, memTesto);
finally
redTemp.Free;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
FirstRicheditControl.lines.Append('This is My Text in First Richedit Control');
FirstRicheditControl.lines.Append('And Finally after concatenation it will show in Same Control');
ConcatenateAndShow;
end;
審查問題,請。我已經強調過'TcxCustomRichEdit',因爲它可能與'TRichEdit'有一點不同,儘管它們可能有許多共同之處。 – TLama 2012-04-02 14:55:24
['原始代碼]](http://delphi.about.com/od/tmemotrichedit/a/richedit-append.htm)即使對圖像也能正常工作;在'TJvRichEdit'控件上進行測試。 – TLama 2012-04-02 15:32:14