procedure TForm1.Button1Click(Sender: TObject);
var
reo1, reo2: IRichEditOle;
d: IDataObject;
cr: TCharRange;
begin
RichEdit1.Perform(EM_GETOLEINTERFACE, 0,
LParam(@reo1));
RichEdit2.Perform(EM_GETOLEINTERFACE, 0,
LParam(@reo2));
if Assigned(reo1) and Assigned(reo2) then begin
with cr do begin
cpMin:=RichEdit1.SelStart;
cpMax:=cpMin+RichEdit1.SelLength;
end;
reo1.GetClipboardData(cr, RECO_COPY, d);
reo2.ImportDataObject(d, 0, 0);
end
end;