andrypein.net : Bagaimana penggunaan drag mouse pada sebuah shape di delphi?
Asli copo sih, yaaah namanya juga belajar, wkwkkwkwkwkw.
Sori kalo ga keren, karena cuma 1 shape aja yang bisa moving movingannya, gambar hasil akhirnya akan kaya gini :
Bahannya hanya form, satu buah shape dan satu buah statusbar (ya itu lah bisa dilihat dari gambar gerak GIF [Baca : Jif]) diatas.
Sebelumnya tambahkan terlebih dahulu variabel privat dengan nama bebas lah bertipe integer dan boolean.
private { Private declarations } GrabDeltaX, GrabDeltaY: integer; MouseDown: boolean;
Lanjut beri kode event pada shape dengan event OnMouseDown.
procedure TForm1.Shape1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin GrabDeltaX := x; GrabDeltaY := y; MouseDown := true; end;
Next masih pada shape, beri event OnMouseMove.
procedure TForm1.Shape1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin if MouseDown then begin Shape1.Left := Shape1.Left + x - GrabDeltaX; Shape1.Top := Shape1.Top + y - GrabDeltaY; Shape1.Repaint; Statusbar1.Panels[0].Text := format( 'x=%d;x=%d', [Shape1.Left, Shape1.Top] ); end; end;
Masih pada shape lagi, kali ini event terakhir adalah OnMouseUp.
procedure TForm1.Shape1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin MouseDown := false; end;
Terakhir banget adalah pada event form OnCreate.
procedure TForm1.FormCreate(Sender: TObject); begin MouseDown := false; DoubleBuffered := true; end;