HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

RTF szöveg másolása programból


Példaprogram letöltése

10586 bájt

Ha van két TRichText komponensünk egy Form-on és programból szeretnénk az egyik komponensben lévő kijelölt szöveget a másikba másolni úgy, hogy az adott szövegrész formázási tulajdonságai is másolásra kerüljenek, akkor ehhez szükségünk lesz némi trükkre, hogy ne kelljen leprogramozni, hogy az összes tulajdonságot figyelembe vegye a másoló algoritmusunk.
A trükk egyszerű, csak ránézésre tűnhet kissé bonyolultnak. A lényeg, hogy a másolás elvégzéséhez az IRichEditOle interfész által nyújtott lehetőségeket használjuk ki és ne a TRichEdit komponensben korlátozottan megvalósított funkciókat.

Első lépésként kérdezzük le a TRichEdit komponensek IRichEditOle interfészét. Ehhez küldjük számukra egy-egy EM_GETOLEINTERFACE üzenetet, ahol is a LParam paraméter helyén egy IRichEditOle típusú változó címét adjuk át. Az üzenet eredményeképpen ebbe a változóba megkapjuk a kért interfészt.

Egy IDataObject típus interfész felhasználásával ezek után az egyik TRichEdit komponenstől kérdezzük le a kijelölt szövegterületet a GetClipboardData függvénnyel, majd a kapott adatot szúrjuk be a másik komponens szövegébe az ImportDataObject függvénnyel.
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;


Könyv
Ez a cikk megtalálható ebben a könyvben: Delphi Software Offline 2001 évkönyv 96. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |