18 April 2009

Pengecekan Penekanan Tombol Dalam Perulangan

Permasalahan klasik tapi cukup banyak ditanyakan orang, terutama yang membuat aplikasi console. Kalau kita membuat aplikasi yang memiliki GUI, memakai form atau kontrol dengan event yang dipunyai tentu tidak jadi masalah. Pengecekan penekanan tombol bisa dilakukan dari event OnKeyPress, OnKeyDown atau OnKeyUp dari sebuah komponen. Tapi bagaimana kita melakukan hal tersebut pada aplikasi console?
Kita bisa melakukannya dengan fungsi GetKeyState() pada unit Windows, digunakan untuk mendapatkan status dari sebuah virtual key. Fungsi ini mempunyai satu parameter dengan tipe integer yang merupakan virtual key yang diinginkan. Hasil kembali dari fungsi ini merupakan status dari virtual key yang di inputkan, dan tipenya integer. Jika bit ke-8 bernilai 1 maka tombol tersebut ditekan dan sebaliknya.
uses Windows;

while True do
begin
  // proses sesuatu…
  Application.ProcessMessages;
  if GetKeyState(VK_ESCAPE) and 128 = 128 then Break;
end;
Bila pengecekan yang diinginkan merupakan kombinasi dari beberapa tombol, misal Ctrl+1, maka pemanggilan fungsi GetKeyState() harus dua kali.
if (GetKeyState(VK_CONTROL) and 128 = 128) and (GetKeyState(Ord('1')) and 128 = 128) then
  Break;

1 komentar: