A technológia a drag-and-drop végrehajtásához drag - dropvvcl
DragDrop ( «drag & drop") - ez az egyik módja adatcsere az alkalmazások között. Ez a csere módszer, amit sok program. Például nagyon gyakran áthelyezni fájlokat és mappákat.
A könyvtár a vizuális elemek - VCL végre a saját verzióját a DragDrop - technológia, amely lehetővé továbbítását és fogadását minden ellenőrzést ugyanazon formában. Ezzel a házi használatra VCL nem vonatkozik az operációs rendszer, bár a szervezet kommunikációs különböző alkalmazások kellene használni a megfelelő funkciót API a Windows.
Egy felhasználó rákattint az egér bal gombját, és húzza a vezérlőelem (tárgy - a forrás) egy másik elem (objektum-vevő). Ha áthúzza egy esemény, amely kezeli az a program (ha a címzett olyan elem, amely felett a kurzort). Component ingatlan DragModeotvechaet való részvétel a folyamat az adatcsere.
DragMode = dmAutomatic - Programok automatikusan megindulnak, a programozó csak azt írja kódokat eseménykezelõkkel.
DragMode = dmManual - az összes hívás a programozónak kell megszervezni magát.
Eseményeket, amelyek akkor jelentkeznek, amikor húzza
OnDragOver esemény történik, miközben mozgatja a kurzort az objektum-vevőt, és amikor elengedi a gombot a helyszínen.
Sender- vevő objektum (a kurzor rajta);
X, Y koordinátái az egér a kliens területe a küldő objektum rendszer;
Államilag állam (az egyik három znacheniydsDragEnter- egér megjelent az elem fölé; dsDragMovekursor áthalad az elem; dsDragLeave- kurzor balra az elem vagy elem fölött elengedi a gombot).
Elfo- logikai. Ez a változó felvezető vissza kell térnie a döntéséről, hogy elfogadja vagy elutasítja obektSource.
Például, a komponens osztály címke (Name = Label1) csak fogadja komponensek klassaShape (geometriai formák), akkor tartalmazhat egy processzort által hordozott A forrás objektum (Forrás):
érvényteleníti __fastcall TForm1 :: Label1DragOver (TObject * Sender, TObject * Forrás,
int X, Y int, TDragState állam bool Accept)
OnDragDrop esemény történik, amikor elengedi a bal egérgombbal az elem, kész fogadni. Ő parametrySender, a Forrás, XiYimeyut ugyanazt jelenti, mint az előző esetben. A tartalma processzor attól függ, milyen funkciók a programozó lehetővé teszi a felhasználó számára, hogy végezze húzással. Ez lehet egy változás a helyét tárgyak, az információcsere, stb
A következő példában, nincs fizikai mozgás a tárgyak; Label1 komponens kap egy mutatót mozgatni tárgy (geometriai ábra), és beolvassa a vagyoni értékek (magasság, szélesség) kiszámításához az alak a kerület. A számítás eredménye kerül Label1 -> felirattal.
void __fastcall TForm1 :: Label1DragDrop (TObject * Sender,
TObject * Forrás, int X, int Y)
float p, pi = 3,14; int W, H, R, D;
w = ((TShape *) Forrás) -> Szélesség;
D = W; ha (D> h) D = H;
kapcsoló (((TShape *) Forrás) -> alakja)