Membuat Keyboard Virtual untuk Memunculkan Angka dan Huruf dengan Delphi

Windows mempunyai keyboard virtual mulai dari versi Windows 7, tetapi terkadang kita masih membutuhkan keahlian membuat keyboard virtual untuk software-software tertentu. Misalnya, membuat kalkulator, memakai touchsreen dari software yang kita buat, membatasi pemasukan dari user, dan lain-lain, tergantung kreatifitas programmer.

Untuk contoh aplikasi. Saya membuat tombol angka 0 s.d. 9 dan tombol huruf dengan TSpeedbutton dan sebuat memo dengan TMemo seperti dibawah ini.



Sekarang kita akan membuat prosedur supaya software memunculkan huruf/angka di memo. Ada 3 jenis  prosedur. Prosedur utama akan memunculkan angka/huruf berdasarkan ketikan user, dan prosedur di masing-masing tombol yang memanggil prosedur pertama tadi.

Satu hal yang harus diingat dalam menggunakan tombol. TSpeedbutton lebih cocok untuk touchscreen daripada TButton dan TBitBtn. Ini disebabkan karena TSpeedbutton tidak menangkap fokus. Fokus tetap pada obyek yang ingin kita tulis. Jika Anda ngotot menggunakan TButton, maka Anda harus berusaha mengembalikan fokus pada bidang tempat menulis. Dalam kasus di artikel ini, prosedur OnClick-nya menjadi begini:

DeteksiKarakter(Sender);
ActiveControl := memo1;

Prosedur Penampil Huruf/Angka ke Obyek Tulis
Prosedur ini bertanggung jawab membuat sistem operasi memunculkan ketikan user tadi pada obyek yang sedang mendapat fokus

procedure TForm1.TampilkanKarakter(Karakter: Char );
var
      layoutKeyboard : HKL;
      Key            : integer;
begin
    layoutKeyboard := GetKeyboardLayout(0);
    Key := VkKeyScanEx(Karakter,layoutKeyboard);
    keybd_event(39, 0, 0, 0);
    keybd_event(39, 0, KEYEVENTF_KEYUP, 0);
    keybd_event(LoByte(Key), 0, 0, 0);
    keybd_event(LoByte(Key), 0, KEYEVENTF_KEYUP, 0);
end;
 

Fungsi GetKeyboardLayout dan keybd_event  ada di unit Windows, sehingga jangan lupa menyertakan unit Windows pada bagian uses.

Prosedur Penangkap Angka/Huruf Ketikan User
Agar lebih simpel. Saya akan menggunakan caption dari masing-masing tombol untuk mengetahui angka/huruf yang ditekan oleh user.

isiCaption := TSpeebbutton(Sender).Caption;

Karena saya menggunakan tipe data string (bukan char), maka ada kemungkinan lebar data lebih dari satu. Saya jaga-jaga saja agar data yang saya dapatkan satu saja, maka saya menuliskan kode ini

karakter := isiCaption[1];

Lantas saya menyerahkan pemrosesan "seakan-akan berasal keyboard" dengan memanggil prosedur TampilkanKarakter.

procedure TForm1.DeteksiKarakter(Sender: TObject);
var
    isiCaption  : string;
    karakter : char;
begin
  isiCaption := TSpeedbutton(Sender).Caption;
  karakter := isiCaption[1];
  TampilkanKarakter(karakter);
end;


Prosedur Pemanggil Prosedur Utama di masing-masing tombol
Sertakan prosedur DeteksiKarakter diatas pada event OnClick masing-masing tombol seperti dibawah ini.

DeteksiKarakter(Sender);

Membuat Keyboard Virtual untuk Memunculkan Angka dan Huruf dengan Delphi Rating: 4.5 Diposkan Oleh: Good Dreamer

2 comments:

  1. agar tampil hurup capital gimana gan??

    BalasHapus
    Balasan
    1. Saya jawab di artikel ini:

      https://octacintadelphi.blogspot.co.id/2018/05/membuat-keyboard-virtual-meng-kapital.html

      Hapus

Diberdayakan oleh Blogger.