A Windows vágólap képviseli minden olyan szöveg vagy grafika tárolóját, amelyet kivágtak, lemásoltak vagy beillesztettek egy alkalmazásba. Ez a cikk bemutatja, hogyan lehet a TClipboard objektumot használni a kivágás-beillesztés funkciók megvalósításához a Delphi alkalmazásban.
A vágólap általában
Mint valószínűleg tudod, a vágólap csak egy darab azonos típusú adatot tárolhat vágásra, másolásra és beillesztésre egyszerre. Ha új információkat küldünk ugyanabban a formátumban a vágólapra, akkor töröljük a korábbi eseményeket, de a a vágólap tartalma a vágólap mellett marad, még akkor is, ha ezeket a tartalmakat beillesztjük egy másik programba.
TClipboard
Annak érdekében, hogy a Windows vágólapot alkalmazásokban használhassuk, hozzá kell adnunk a ClipBrd egység a projekt használati záradékához, kivéve, ha a vágást, másolást és beillesztést azokra az alkatrészekre korlátozjuk, amelyek már rendelkeznek a vágólap módszereinek beépített támogatásával. Ezek az összetevők a TEdit, TMemo, TOLEContainer, TDDEServerItem, TDBEdit, TDBImage és TDBMemo.
A ClipBrd egység automatikusan ábrázolja a vágólapnak nevezett TClipboard objektumot. Fogjuk használni a CutToClipboard, Másolja a vágólapra, PasteFromClipboard, Egyértelmű és HasFormat módszerek a vágólap műveleteivel és a szöveg / grafikai manipulációk kezelésére.
Szöveg küldése és letöltése
Annak érdekében, hogy szöveget küldjön a vágólapra, a vágólap objektumának AsText tulajdonságát kell használni. Ha például azt akarjuk, hogy elküldjük a húr a SomeStringData változóban található információkat a vágólapra (törölve bármilyen szöveget is) a következő kódot fogjuk használni:
felhasználások ClipBrd; ...
Vágólap. AsText: = SomeStringData_Variable;
A vágólapon a szöveges információk beolvasására használjuk
felhasználások ClipBrd; ...
SomeStringData_Variable: = Vágólap. AsText;
Megjegyzés: Ha csak a szöveget akarjuk lemásolni, mondjuk a Szerkesztés összetevőből a vágólapra, akkor nem kell a ClipBrd egységet belefoglalni a felhasználási záradékba. A TEdit CopyToClipboard módszere a kiválasztott szöveget a szerkesztésvezérlőben a vágólapra másolja CF_TEXT formátumban.
eljárás TForm1.Button2Click (Feladó: TObject); kezdődik// a következő sor választja a // MINDEN szöveget a szerkesztésvezérlőben {Edit1.SelectAll;} Edit1.CopyToClipboard; vég;
Vágólap Képek
Ahhoz, hogy a vágólapból grafikus képeket szerezzen, a Delphi-nek tudnia kell, hogy milyen típusú képet tárolnak ott. Hasonlóképpen, a képek vágólapra történő átviteléhez az alkalmazásnak el kell mondania a vágólapra, hogy milyen grafikát küld. A Format paraméter néhány lehetséges értéke a következő; sok más vágólap-formátum is található a Windows által.
- CF_TEXT - Szöveg mindegyik sor végével a CR-LF kombináció.
- CF_BITMAP - Windows bitmap grafika.
- CF_METAFILEPICT - Windows metafájl grafika.
- CF_PICTURE - TPicture típusú objektum.
- CF_OBJECT - Bármely tartós tárgy.
A HasFormat módszer True értéket ad vissza, ha a vágólapon lévő kép megfelelő formátumú:
ha Vágólap. HasFormat (CF_METAFILEPICT) azután ShowMessage ('A vágólapnak metafájlja van');
A Hozzárendelés módszerrel képet küldhet (hozzárendelhet) a vágólapra. Például a következő kód másolja a bitképet a MyBitmap nevű bitképes objektumról a vágólapra:
Vágólap. Hozzárendelés (MyBitmap);
A MyBitmap általában a TGraphics, TBitmap, TMetafile vagy TPicture típusú objektumok.
A képnek a vágólapból történő beolvasásához a következőket kell tennünk: ellenőrizni kell a vágólap aktuális tartalmának formátumát, és a célobjektum Assign módszerét kell használni:
{Helyezzen el egy gombot és egy képvezérlőt az űrlapra}} {A kód végrehajtása előtt nyomja meg az Alt-PrintScreen billentyűkombinációt}felhasználások clipbrd;... eljárás TForm1.Button1Click (Feladó: TObject); kezdődikha Vágólap. HasFormat (CF_BITMAP) azután Image1.Picture. Bitmap. Hozzárendelés (vágólap); végén;
Több vágólap vezérlés
A vágólap többféle formátumban tárolja az információkat, így különféle formátumokban továbbíthatjuk az alkalmazásokat az alkalmazások között. Amikor a Delphi TClipboard osztályával a vágólapról információkat olvasunk, a szabványos vágólap formátumokra korlátozódunk: szöveg, képek és metafájlok.
Tegyük fel, hogy két különböző Delphi alkalmazás között dolgozik; hogyan definiálná az egyedi vágólap formátumot az adatok küldéséhez és fogadásához a két program között? A feltárás céljából mondjuk, hogy megpróbál egy Paste kódot menü tétel. Azt akarja, hogy ki lehessen kapcsolni, ha a vágólapon nincs szöveg (például).
Mivel a vágólapra vonatkozó teljes folyamat a színfalak mögött zajlik, nincs olyan TClipboard osztály módszer, amely tájékoztassák Önt, ha a vágólap tartalmában valamilyen változás történt. Az ötlet az, hogy bekapcsol a vágólap értesítő rendszerébe, így hozzáférhet az eseményekhez és válaszolhat az eseményekre, amikor a vágólap megváltozik.
A nagyobb rugalmasság és a funkcionalitás élvezete érdekében a vágólap módosítási értesítéseivel és az egyedi vágólap formátumokkal - a vágólap meghallgatásával - foglalkozni kell.