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 ; |