Pagrindinės iškarpinės operacijos (iškirpti / kopijuoti / įklijuoti) „Delphi“.

Naudojant objektą TClipboard

Iškarpinės programavimas Delphi

CC0 viešasis domenas





http://pxhere.com/en/photo/860609

„Windows“ mainų sritis yra bet kokio teksto ar grafikos, iškirpto, nukopijuojamo arba įklijuojamo iš programos arba į ją, talpykla. Šiame straipsnyje bus parodyta, kaip naudoti objektą TClipboard, kad įdiegtumėte iškirpimo-kopijavimo-įklijavimo funkcijas savo Delphi programoje.



Iškarpinė apskritai

Kaip tikriausiai žinote, iškarpinėje vienu metu gali būti tik vienas tos pačios rūšies duomenų fragmentas, skirtas iškirpti, kopijuoti ir įklijuoti. Jei į mainų sritį siunčiame naują informaciją tuo pačiu formatu, ištriname tai, kas buvo anksčiau, tačiau iškarpinės turinys lieka iškarpinėje net ir įklijavus tą turinį į kitą programą.

TCkarpinė

Norėdami savo programose naudoti „Windows“ mainų sritį, turime pridėti ClipBrd vienetas projekto naudojimo sąlygai, išskyrus atvejus, kai apribojame kirpimą, kopijavimą ir įklijavimą komponentams, jau turintiems įmontuotą iškarpinės metodų palaikymą. Tie komponentai yra „TEdit“, „TMemo“, „TOLEContainer“, „TDDEServerItem“, „TDBEdit“, „TDBImage“ ir „TDBMemo“.



„ClipBrd“ vienetas automatiškai atvaizduoja „TClipboard“ objektą, vadinamą „Clipboard“. Mes naudosime CutToClipboard , Nukopijuoti į iškarpinę , PasteFrom Clipboard , Aišku ir HasFormat metodai, skirti dirbti su mainų srities operacijomis ir manipuliuoti tekstu / grafiniu vaizdu.

Siųsti ir gauti tekstą

Norint nusiųsti tekstą į mainų sritį, naudojama iškarpinės objekto ypatybė AsText. Jei norime, pavyzdžiui, išsiųsti styga kintamajame SomeStringData esančią informaciją į mainų sritį (išvalydami bet kokį ten esantį tekstą), naudosime šį kodą:

|_+_|

Norėdami gauti teksto informaciją iš mainų srities, kurią naudosime

|_+_|

Pastaba: jei norime tik nukopijuoti tekstą iš, tarkime, Redagavimo komponento į mainų sritį, mes neturime įtraukti ClipBrd vieneto į naudojimo sąlygą. TEdit metodas CopyToClipboard nukopijuoja pasirinktą tekstą redagavimo valdiklyje į mainų sritį CF_TEXT formatu.



|_+_|

Iškarpinės vaizdai

Norėdami gauti grafinius vaizdus iš mainų srities, „Delphi“ turi žinoti, kokio tipo vaizdas ten saugomas. Panašiai, norint perkelti vaizdus į mainų sritį, programa turi nurodyti iškarpinei, kokio tipo grafiką ji siunčia. Toliau pateikiamos kai kurios galimos parametro Format reikšmės; „Windows“ teikia daug daugiau iškarpinės formatų.

    CF_TEXT- Tekstas, kurio kiekviena eilutė baigiasi raide a CR-LF derinys. CF_BITMAP- Windows bitmap grafika. CF_METAFILEPICT- Windows metafailo grafika. CF_PICTURE- TPicture tipo objektas. CF_OBJECT- Bet koks patvarus objektas.

HasFormat metodas grąžina True, jei vaizdas mainų srityje yra tinkamo formato:



|_+_|

Norėdami siųsti (priskirti) vaizdą į mainų sritį, naudokite priskyrimo metodą. Pavyzdžiui, šis kodas nukopijuoja taškinę schemą iš taškinės schemos objekto, pavadinto MyBitmap, į mainų sritį:

|_+_|

Apskritai MyBitmap yra TGraphics, TBitmap, TMetafile arba TPicture tipo objektas.



Norėdami gauti vaizdą iš mainų srities, turime: patikrinti esamo iškarpinės turinio formatą ir naudoti tikslinio objekto priskyrimo metodą:

|_+_|

Daugiau mainų srities valdymo

Iškarpinėje saugoma informacija keliais formatais, kad galėtume perkelti duomenis iš vienos programos į kitą naudodami skirtingus formatus. Skaitydami informaciją iš mainų srities su Delphi TClipboard klase, apsiribojame standartiniais iškarpinės formatais: tekstu, paveikslėliais ir metafailais.



Tarkime, kad dirbate tarp dviejų skirtingų Delphi programų; kaip apibrėžtumėte pasirinktinį iškarpinės formatą, kad galėtumėte siųsti ir gauti duomenis tarp šių dviejų programų? Tarkime, kad tyrinėjimo tikslais bandote užkoduoti įklijuotimeniu elementą. Norite, kad jis būtų išjungtas, kai iškarpinėje nėra teksto (kaip pavyzdys).

Kadangi visas procesas su iškarpine vyksta užkulisiuose, nėra jokio TClipboard klasės metodo, kuris jus informuotų, kai įvyks tam tikri mainų srities turinio pasikeitimai. Idėja yra prijungti iškarpinės pranešimų sistemą, kad galėtumėte pasiekti įvykius ir reaguoti į juos pasikeitus iškarpinei.

Norint mėgautis lankstumu ir funkcionalumu, reikia tvarkyti pranešimus apie mainų srities pasikeitimus ir pasirinktinius iškarpinės formatus – klausytis iškarpinės.