(7) Merayap bentuk ikon (ikon)
Buat form3 baru, simpan sebagai capture3.pas. Atur empat properti dari Bordericons atribut ke false.
Borderstyle diatur ke BSNone, FormStyle diatur ke FSSTAYONTOP.
Satu variabel pribadi: fdragging: boolean;
unit capture3;
antarmuka
penggunaan
Windows, pesan, sysutils, varian, kelas, grafik, kontrol, formulir,
Dialog;
jenis
Tform3 = class (tform)
Prosedur FormCreate (pengirim: Tobject);
Prosedur Formmousedown (Pengirim: Tobject; Tombol: Tmousebutton;
Shift: tshiftate; x, y: integer);
Prosedur FormMouseMove (pengirim: Tobject; Shift: TshiftState;
X, Y: Integer);
Prosedur FormMouseUp (Pengirim: Tobject; Tombol: TMousebutton;
Shift: tshiftate; x, y: integer);
Prosedur FormActivate (pengirim: Tobject);
Prosedur Formdestroy (pengirim: TOBJEK);
Prosedur FormPaint (Pengirim: Tobject);
Pribadi
fdragging: boolean;
publik
Frect: Trect;
FBMP: tbitmap;
akhir;
var
Form3: tform3;
Pelaksanaan
{$ R *.dfm}
// Buat kursor Kursor Kustom baru dan letakkan di Sumber Daya Capture3.Res
// Dalam file, ada perbatasan persegi panjang putih 32*32 untuk menunjukkan kisaran penangkapan.
Prosedur TForm3.FormCreate (pengirim: TOBJEK);
var ADC: HDC;
const crbox = -19;
Mulai
Screen.cursors [crbox]: = loadCursor (hinstance, 'cursor_2');
Kursor: = crbox;
fbmp: = tbitmap.create;
fbmp.width: = screen.width;
fbmp.height: = screen.height;
ADC: = getDC (0);
Bitblt (fbmp.canvas.handle, 0,0, screen.width, screen.height, adc, 0,0, srccopy);
Dirilis (0, ADC);
SetBounds (0,0, screen.width, screen.height);
akhir;
Prosedur TForm3.FormMousedown (pengirim: TOBJEK; Tombol: Tmousebutton;
Shift: tshiftate; x, y: integer);
Mulai
Jika mbleft = tombol lalu mulailah
fdragging: = true;
SetRect (Frect, x, y, x+32, y+32);
Canvas.drawfocusrect (frect);
akhir;
akhir;
Prosedur tform3.FormMouseMove (pengirim: TOBJEK; SHIFT: TSHIFTSTATE;
X, Y: Integer);
Mulai
Jika fdragging maka mulailah
Canvas.drawfocusrect (frect);
Frect.Left: = x;
frect.top: = y;
Frect.right: = x+32;
frect.bottom: = y+32;
Canvas.drawfocusrect (frect);
akhir;
akhir;
Prosedur TForm3.FormMouseUp (Pengirim: Tobject; Tombol: TMousebutton;
Shift: tshiftate; x, y: integer);
Mulai
ModalResult: = mrok;
akhir;
Prosedur tform3.FormActivate (pengirim: TOBJEKS);
const crhand = -18;
Mulai
Screen.cursors [crhand]: = loadCursor (hinstance, pchar ('cursor_1'));
Kursor: = CRHand;
akhir;
Prosedur tform3.FormDestroy (pengirim: TOBJEK);
Mulai
fbmp.free;
Screen.cursor: = crdefault;
akhir;
Prosedur TForm3.FormPaint (pengirim: TOBJEK);
Mulai
Canvas.draw (0,0, fbmp);
akhir;
akhir.