Lõikelaua põhitõed (lõikamine / kopeerimine / kleepimine)

Windowsi lõikelaua tähistab konteineri mis tahes teksti või graafika jaoks, mis on rakendusest lõigatud, kopeeritud või kleebitud. See artikkel näitab teile, kuidas kasutada TClipboardi objekti rakenduse Delphi cut-copy-paste funktsioonide rakendamiseks.

Lõikelaud üldiselt

Nagu arvatavasti teate, võib lõikelauale korraga korraga lõigata, kopeerida ja kleepida ainult ühte tükki samasuguseid andmeid. Kui saadame lõikelauale samasuguses vormingus uut teavet, kustutame enne ära selle, mis seal oli, kuid lõikelaua sisu jääb lõikelauale ka pärast seda, kui oleme selle sisu teise programmi kleepinud.

TC lõikelaud

Windowsi lõikelaua kasutamiseks oma rakendustes peame lisama ClipBrd üksus projekti kasutusklausli juurde, välja arvatud juhul, kui piirame lõikamist, kopeerimist ja kleepimist komponentidele, millel juba on lõikelaua meetodite sisseehitatud tugi. Need komponendid on TEdit, TMemo, TOLEContainer, TDDEServerItem, TDBEdit, TDBImage ja TDBMemo.

ClipBrd-üksus esindab automaatselt TClipboardi objekti, mida nimetatakse lõikelauaks. Me kasutame

instagram viewer
CutToClipboard, Kopeerida lõikelauale, PasteFromClipboard, Selge ja HasFormat lõikelaua toimingute ja teksti / graafilise manipuleerimisega seotud meetodid.

Teksti saatmine ja taastamine

Teksti lõikepuhvrisse saatmiseks kasutatakse lõikelaua objekti AsText omadust. Kui me tahame näiteks saata nöör muutujast SomeStringData sisalduva teabe lõikelauale (seal oleva teksti pühkides) kasutame järgmist koodi:

kasutab ClipBrd; ...
Lõikelaud. AsText: = SomeStringData_Variable; 

Tekstiinfo hankimiseks lõikelaualt, mida kasutame

kasutab ClipBrd; ...
SomeStringData_Variable: = lõikelauale. AsText; 

Märkus. Kui soovime teksti kopeerida ainult, näiteks, komponendist Redigeerimine lõikelauale, ei pea me ClipBrd-üksust kaasama klauslisse. TEditi meetod CopyToClipboard kopeerib redigeerimise juhtelemendis valitud teksti lõikelauale CF_TEXT vormingus.

protseduur TForm1.Button2Click (saatja: TObject); alustada// järgmine rida valib // KÕIK teksti redigeerimise juhtelemendis {Edit1.SelectAll;} Redigeerimine1.CopyToClipboard; lõpp; 

Lõikelaua pildid

Lõikelaualt graafiliste piltide hankimiseks peab Delphi teadma, millist pilti sinna salvestatakse. Samamoodi peab pilt lõikelauale ülekandmiseks ütlema lõikelauale, millist tüüpi graafikat see saadab. Järgnevad mõned parameetri Formaat võimalikud väärtused; Windowsi pakutavad lõikelauavormingud on palju rohkem.

  • CF_TEXT - tekst, mille iga rida lõpeb a-ga CR-LF kombinatsioon.
  • CF_BITMAP - Windowsi bitmap graafika.
  • CF_METAFILEPICT - Windowsi metafaili graafika.
  • CF_PICTURE - TPicture tüüpi objekt.
  • CF_OBJECT - mis tahes püsiv objekt.

HasFormati meetod tagastab väärtuse True, kui lõikelaua pilt on õige vorminguga:

kui Lõikelaud. HasFormat (CF_METAFILEPICT) siis ShowMessage ('lõikelaual on metafail'); 

Kasutage määramismeetodit pildi lõikelauale saatmiseks (määramiseks). Näiteks kopeerib järgmine kood bitmap-i objektist nimega MyBitmap lõikekausta lõikelauale:

 Lõikelaud. Määra (MyBitmap); 

Üldiselt on MyBitmap tüüpi TGraphics, TBitmap, TMetafile või TPicture.

Lõikelaualt pildi saamiseks peame: kontrollima lõikelaua praeguse sisu vormingut ja kasutama sihtobjekti määramismeetodit:

{asetage vorm 1-le üks nupp ja üks kujutise juhtnupp}} {Enne selle koodi sisestamist vajutage Alt-PrintScreeni klahvikombinatsiooni}kasutab clipbrd;... protseduur TForm1.Button1Click (saatja: TObject); alustadakui Lõikelaud. HasFormat (CF_BITMAP) siis Pilt1.Pilt. Bitmap. Määra (lõikelauale); lõpp; 

Rohkem lõikelaua juhtimist

Lõikelauale salvestatakse teave mitmes vormingus, et saaksime andmeid eri vormingute abil rakenduste vahel üle kanda. Delphi TClipboardi klassiga lõikelaualt teavet lugedes piirdume standardsete lõikelauavormingutega: tekst, pildid ja metafailid.

Oletame, et töötate kahe erineva Delphi rakenduse vahel; kuidas määratlete kohandatud lõikelaua vormingu andmete saatmiseks ja vastuvõtmiseks nende kahe programmi vahel? Oletame, et uurimise huvides proovite kleepida kleepimist menüü üksus. Soovite, et see oleks keelatud, kui lõikelaual pole teksti (näiteks).

Kuna kogu lõikelauaga protsess toimub kulisside taga, ei ole TClipboardi klassi meetodil, mis teavitaks teid, kui lõikelaua sisu on mõnevõrra muutunud. Idee on haakuda lõikelaua teavitussüsteemiga, nii et pääsete lõikelaua muutumisel sündmustele juurde ja saate neile reageerida.

Suurema paindlikkuse ja funktsionaalsuse nautimiseks on vaja tegeleda lõikelaua muutmise teatiste ja lõikelaua kohandatud vormingutega - lõikelaua kuulamisega.