Vous êtes sur la page 1sur 9

Ari Fadli

ari_larsson21@yahoo.com

MENGGERAKKAN OBJEK PADA DELPHI


Para programmer biasanya perlu menggerakkan objek pada Delphi, baik itu dengan menggunakan kursor (mouse), maupun dengan tombol panah atau tombol lainnya pada keyboard. Fungsi ini biasanya dibuat untuk kepentingan game. Langsung saja, pertama aku buat contoh menggerakkan objek/karakter pada Delphi dengan kursor. 1. Jalankan Delphi 2. Kemudian pasang sebuah objek pada form, terserah kamu. Aku menggunakan TShape dengan property dan value sebagai berikut : TShape - Brush > color : clRed - Shape : stCircle - Name : objek

Menggerakkan objek pada delphi

Ari Fadli

ari_larsson21@yahoo.com

3. Kemudian aktifkan form1 lalu masuk ke objek inspector tab events. Pilih onMouseMove. Klik ganda pada area putih. Kemudian tambahkan listing berikut : procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin objek.Left := X ; objek.Top := Y ; end; 4. Coba running program, hasilnya objek telah mengikuti keman pun kursok bergerak. Namun ada yang kurang, pointer dari kursor berada di luar objek, itu karena objek tersebut dasarnya berbentuk kotak, dan pointer mengarah ke pada koordinat x : 0, dan y : 0 dari objek.

Nah, bagaimana caranya agar pointer kursor menunjuk ke arah tengah. Coba tambahkan listing berikut : procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin objek.Left := X - objek.width; objek.Top := Y objek.height; end;
Menggerakkan objek pada delphi

Ari Fadli

ari_larsson21@yahoo.com

5. Running program, dan hasilnya

Titik registrasinya berubah, pointer akan menunjuk di koordinat dari besarnya nilai width dan height dari objek. Tujuan kita sebenarnya adalah mengarahkan pointer tepat berada ditengah objek, jadi coba yang ini, pasti benar procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin objek.Left := X - objek.width div 2; objek.Top := Y objek.height div 2; end; dan hasilnya sudah benar

Menggerakkan objek pada delphi

Ari Fadli

ari_larsson21@yahoo.com

namun ada yang kurang, kursor masih bisa bergerak leluasa di wilayah objek. Bagaimana mengatasinya? Mudah, tinggal menubah property enabled dari objek menjadi false.

Dan hasilnya sekarang sudah sempurna, kursor tetap mengarah ditengah objek kenapa pun kursor diarahkan.

Menggerakkan objek pada delphi

Ari Fadli

ari_larsson21@yahoo.com

6. Nah, langkah terakhir hilangkan kursor manual yang bergerak di form. Mudah, tinggal mengubah property cursor pada form1 menjadi crNone. Dan sekarang kamu udah punya objek/karakter yang bisa digerakkan di form. Oh iya, mengubahnya gak bisa langsung di object inspector tab properties, kita mesti mengubahnya lewat events. Caranya, aktifkan form1, kemudian masuk ke events, pilih onCreate. Klik ganda pada area putih, tambahkan listing berikut : procedure TForm1.FormCreate(Sender: TObject); begin form1.Cursor := crNone; end; akhirnya, baru sempurna. Nah, lanjut ke model pergerakan objek menggunakan tombol di keyboard. Pertama-tama kita mesti tahu dulu kode-kode untuk mengidentifikasi tombol yang kita tekan. Berikut beberapa kode tombolnya (virtual key): VK_LBUTTON = Left mouse button VK_RBUTTON = Right mouse button VK_CANCEL = Control+Break
Menggerakkan objek pada delphi

Ari Fadli

ari_larsson21@yahoo.com

VK_MBUTTON = Middle mouse button VK_BACK = Backspace key VK_TAB = Tab key VK_CLEAR = Clear key VK_RETURN = Enter key VK_SHIFT = Shift key VK_CONTROL = Ctrl key VK_MENU = Alt key VK_PAUSE = Pause key VK_CAPITAL = Caps Lock key VK_KANA = Used with IME VK_HANGUL = Used with IME VK_JUNJA = Used with IME VK_FINAL = Used with IME VK_HANJA = Used with IME VK_KANJI = Used with IME VK_CONVERT = Used with IME VK_NONCONVERT = Used with IME VK_ACCEPT = Used with IME VK_MODECHANGE = Used with IME VK_ESCAPE = Esc key VK_SPACE = Space bar VK_PRIOR = Page Up key VK_NEXT = Page Down key VK_END = End key VK_HOME = Home key VK_LEFT = Left Arrow key VK_UP = Up Arrow key VK_RIGHT = Right Arrow key VK_DOWN = Down Arrow key VK_SELECT = Select key VK_PRINT = Print key (keyboard-specific) VK_EXECUTE = Execute key VK_SNAPSHOT = Print Screen key VK_INSERT = Insert key VK_DELETE = Delete key VK_HELP = Help key VK_LWIN = Left Windows key (Microsoft keyboard) VK_RWIN = Right Windows key (Microsoft keyboard) VK_APPS = Applications key (Microsoft keyboard) VK_NUMPAD0 0 = key (numeric keypad) VK_NUMPAD1 1 = key (numeric keypad) VK_NUMPAD2 2 = key (numeric keypad)

Menggerakkan objek pada delphi

Ari Fadli

ari_larsson21@yahoo.com

VK_NUMPAD3 3 = key (numeric keypad) VK_NUMPAD4 4 = key (numeric keypad) VK_NUMPAD5 5 = key (numeric keypad) VK_NUMPAD6 6 = key (numeric keypad) VK_NUMPAD7 7 = key (numeric keypad) VK_NUMPAD8 8 = key (numeric keypad) VK_NUMPAD9 9 = key (numeric keypad) VK_MULTIPLY = Multiply key (numeric keypad) VK_ADD = Add key (numeric keypad) VK_SEPARATOR = Separator key (numeric keypad) VK_SUBTRACT = Subtract key (numeric keypad) VK_DECIMAL = Decimal key (numeric keypad) VK_DIVIDE = Divide key (numeric keypad) VK_F1 = F1 key VK_F2 = F2 key VK_F3 = F3 key VK_F4 = F4 key VK_F5 = F5 key VK_F6 = F6 key VK_F7 = F7 key VK_F8 = F8 key VK_F9 = F9 key VK_F10 = F10 key VK_F11 = F11 key VK_F12 = F12 key VK_F13 = F13 key VK_F14 = F14 key VK_F15 = F15 key VK_F16 = F16 key VK_F17 = F17 key VK_F18 = F18 key VK_F19 = F19 key VK_F20 = F20 key VK_F21 = F21 key VK_F22 = F22 key VK_F23 = F23 key VK_F24 = F24 key VK_NUMLOCK = Num Lock key VK_SCROLL = Scroll Lock key VK_LSHIFT = Left Shift key (only used with GetAsyncKeyState and GetKeyState) VK_RSHIFT = Right Shift key (only used with GetAsyncKeyState and GetKeyState)

Menggerakkan objek pada delphi

Ari Fadli

ari_larsson21@yahoo.com

VK_LCONTROL = Left Ctrl key (only used with GetAsyncKeyState and GetKeyState) VK_RCONTROL = Right Ctrl key (only used with GetAsyncKeyState and GetKeyState) VK_LMENU = Left Alt key (only used with GetAsyncKeyState and GetKeyState) VK_RMENU = Right Alt key (only used with GetAsyncKeyState and GetKeyState) VK_PROCESSKEY = Process key VK_ATTN = Attn key VK_CRSEL = CrSel key VK_EXSEL = ExSel key VK_EREOF = Erase EOF key VK_PLAY = Play key VK_ZOOM = Zoom key VK_NONAME = Reserved for future use VK_PA1 = PA1 key VK_OEM_CLEAR = Clear key Sepertinya semua tombol di keyboard ada di atas kode virtualnya. Jadi kode tersebut berfungsi untuk memanggil tombol yang ditekan. Ayo praktekkan : 1. Jalankan Delphi 2. Tambahkan Tshape dengan property dan nilai, seperti program yang kita buat sebelumnya.

Menggerakkan objek pada delphi

Ari Fadli

ari_larsson21@yahoo.com

3. Logika dalam membuat program ini bisa dengan menggunakan aliran case of. Kita coba membuatnya dengan aliran if then else terlebih dahulu. 4. aktifkan form1 dan masuk ke tab events di object inspector. Klik ganda pada area putih disebelahnya kemudian isikan listing seperti berikut : procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin case key of VK_LEFT : shape1.Left := shape1.Left - 1; VK_RIGHT : shape1.Left := shape1.Left + 1; VK_UP : shape1.Top := shape1.Top - 1; VK_DOWN : shape1.Top := shape1.Top + 1; end; end; sedikit penjelasan : VK_LEFT : shape1.left := shape1.left 1; Artinya : jika tombol panah kiri ditekan (VK_LEFT) maka posisi shape1 (secara mendatar) sama dengan posisi shape1 pada posisi awal dikurangi 1. Jadi, misalkan shape1 pada saat program pertama kali dijalankan berada di Left = 30, maka pada saat tombol panah kiri ditekan nilai left yang awalnya 30 berubah menjadi 29. 5. program selesai, coba jalankan dan tekan arah panah pada keyboard. Hasilnya objek bergerak ke arah tombol panah ditekan. Bila ingin kecepatan pergerakan bertambah, ubah nilai yang ditambahkan atau yang dikurangi pada listing tersebut, VK_LEFT : shape1.Left := shape1.Left - 1; // misalnya ini, maka ubah nilai 1 menjadi lebih besar misalnya 5, seperti ini VK_LEFT : shape1.Left := shape1.Left - 5; maka kecepatan objek apabila tombol panah kiri ditekan maka akan berpindah ke kiri sebesar. Dan apabila kamu ingin menggunakan tombol lain yang berfungsi untuk menggerakkan objek tersebut, tinggal mengubah VK_LEFT dengan virtual key lainnya. Thanks for reading!

Menggerakkan objek pada delphi

Vous aimerez peut-être aussi