Odložišče Windows predstavlja vsebnik za vsa besedila ali grafike, ki so izrezani, kopirani ali prilepljeni iz ali v aplikacijo. Ta članek vam bo pokazal, kako uporabljati objekt TClipboard za izvajanje funkcij za rezanje-kopiranje in lepljenje v aplikaciji Delphi.
Odložišče na splošno
Kot verjetno veste, lahko odložišče hrani hkrati samo en kos iste vrste podatkov za izrezovanje, kopiranje in lepljenje. Če v odložišče pošljemo nove podatke v isti obliki, izbrišemo, kar je bilo prej, vendar vsebina odložišča ostane v odložišču tudi potem, ko jih prilepimo v drug program.
TClipboard
Za uporabo Windows odložišča v naših aplikacijah moramo dodati ClipBrd enota na uporabno klavzulo projekta, razen če omejimo rezanje, kopiranje in lepljenje na komponente, ki že imajo vgrajeno podporo za odložišča. Te komponente so TEdit, TMemo, TOLEContainer, TDDEServerItem, TDBEdit, TDBImage in TDBMemo.
Enota ClipBrd samodejno predstavlja objekt TClipboard, imenovan Odložišče. Uporabili bomo CutToClipboard,
Kopirati v odložišče, PasteFromClipboard, Jasno in HasFormat metode za obravnavo operacij odložišča in besedilne / grafične manipulacije.Pošlji in naloži besedilo
Za pošiljanje nekaj besedila v odložišče se uporablja lastnost AsText objekta Clipboard. Če želimo na primer poslati sporočilo vrvica Za podatke, ki jih vsebuje spremenljivka SomeStringData v odložišče (obrišemo ne glede na besedilo), bomo uporabili to kodo:
uporablja ClipBrd; ...
Odložišče. AsText: = SomeStringData_Variable;
Za pridobivanje besedilnih informacij iz odložišča bomo uporabili
uporablja ClipBrd; ...
SomeStringData_Variable: = Odložišče. AsText;
Opomba: če želimo besedilo kopirati samo iz, recimo, komponente Uredi v odložišče, nam klavzule o uporabi ni treba vključiti v enoto ClipBrd. Metoda CopyToClipboard TEdit kopira izbrano besedilo v nadzoru urejanja v odložišče v formatu CF_TEXT.
postopek TForm1.Button2Click (Pošiljatelj: TObject); začeti// v naslednji vrstici bo izbrano // VSE besedilo v nadzoru urejanja {Edit1.SelectAll;} Edit1.CopyToClipboard; konec;
Slike odložišča
Za pridobivanje grafičnih slik iz odložišča mora Delfi vedeti, kakšen tip slike je tam shranjen. Podobno mora aplikacija za prenos slik v odložišče povedati, katero vrsto grafike pošilja. Sledijo nekatere možne vrednosti parametra Format; Obstaja veliko več oblik odložišča, ki jih ponuja Windows.
- CF_TEXT - Besedilo z vsako vrstico, ki se konča z CR-LF kombinacija.
- CF_BITMAP - Grafična slika Windows.
- CF_METAFILEPICT - metafilna grafika sistema Windows.
- CF_PICTURE - Predmet tipa TPicture.
- CF_OBJECT - Vsak obstojen predmet.
Metoda HasFormat vrne True, če ima slika v odložišču pravilno obliko:
če Odložišče. HasFormat (CF_METAFILEPICT) torej ShowMessage („Odložišče ima metafile“);
S pomočjo metode Dodeli pošljite (dodelite) sliko v odložišče. Naslednja koda na primer kopira bitno sliko iz bitne mape z imenom MyBitmap v odložišče:
Odložišče. Dodeli (MyBitmap);
Na splošno je MyBitmap predmet vrste TGraphics, TBitmap, TMetafile ali TPicture.
Za pridobitev slike iz odložišča moramo: preveriti obliko trenutne vsebine odložišča in uporabiti metodo Dodeli ciljni objekt:
{položite en gumb in en nadzor slike na obrazec1} {Pred izvedbo te kode pritisnite kombinacijo tipk Alt-PrintScreen}uporablja clipbrd;... postopek TForm1.Button1Click (Pošiljatelj: TObject); začetiče Odložišče. HasFormat (CF_BITMAP) torej Slika1.Slika. Bitmap. Dodeli (odložišče); konec;
Več nadzora odložišča
Odložišče hrani podatke v več formatih, tako da lahko podatke prenašamo med aplikacijami z različnimi formati. Ko beremo informacije iz odložišča z razredom Delphijev TClipboard, smo omejeni na standardne formate odložišča: besedilo, slike in metafile.
Recimo, da delate med dvema različnima aplikacijama Delphi; kako bi opredelili obliko odložišča po meri za pošiljanje in prejemanje podatkov med tema dvema programoma? Za namene raziskovanja recimo, da poskušate kodirati kodo točka menija. Želite, da je onemogočeno, če v odložišču ni besedila (kot primerek).
Ker se celoten postopek z odložiščem odvija zakulisno, ni metode razreda TClipboard, ki bi vas obvestila, ko se bo v vsebini odložišča spremenila. Ideja je, da se priklopite na sistem za obveščanje o odložišču, tako da lahko dostopate do dogodkov in se odzovete nanje, ko se odložišče spremeni.
Če želite uživati večjo fleksibilnost in funkcionalnost, je potrebno obravnavati obvestila o spremembi odložišča in prilagojene formate odložišča - poslušanje odložišča -.