Thursday, July 25, 2013

TOMBOL ENTER UNTUK LANJUT PADA KOMPONEN EDIT

Salah satu komponen pada Delphi yang sering digunakan adalah komponen ‘Edit’, dimana komponen ini digunakan sebagai media input berupa text atau tulisan.Dalam penggunaan komponen ini biasanya kita mendapatkan kendala jika kita menggunakan beberapa komponen edit untuk input data, misalnya input biodata yang berisi nama , alamat, hobi,dan lain lain dimana kita harus menggunakan beberapa komponen ‘Edit’ . Masalah yang timbul adalah pada saat kita ingin pindah ke komponen Edit berikutnya, Karena Kebiasaan kita saat ingin pindah ke baris berikutnya adalah menggunakan tombol Enter, walaupun secara default sistem operasi windows sudah menyediakan tombol TAB untuk berpindah kekomponen selanjutnya


Untuk yang sudah terbiasa dengan tombol TAB, hal ini tidak menjadi masalah, naah untuk yang biasa menggunakan tombol Enter tentu saja ini menjadi suatu kesulitan tersendiri. Untuk itu disini saya mencoba memberikan sedikit tips agar kita bisa memfungsikan tombol Enter pada komponen Edit.

Caranya adalah memanfaatkan Even OnKeyDown pada Komponen Edit tersebut, jadi pada Even OnKeyDown kita definisikan kalau user menekan tombol Enter maka kursor akan pindah ke Komponen Edit Berikutnya, Salah satu cara yang paling sederhana adalah menggunakan Properti SetFocus ( Cara ini masih ada kelemahannya namun disini saya berikan contohnya untuk pemahaman saja ) dan berikutnya saya juga akan berikan cara yang lebih efektif.


Perhatikan Contoh Berikut:

Ketikan kode ini pada Even OnKeyDown
if Key=VK_Return then Edit2.SetFocus;
VK_Return adalah Tombol Enter, artinya Jika User Menekan Tombol Enter padasaat berada di Komponen Edit1 maka kursor akan pindah ke Komponen Edit2   ( Edit2.setfocus )
Cara ini tidak efektif jika kita menggunakan banyak komponen edit, karena kita harus selalu mendefinisikan tombol Edit berikutnya yang kita setFocus, Berikut adalah cara yang lebih efektif lagi,
Masukan kode berikut pada Even OnKeyDown



   if (key =VK_UP) then  perform(WM_NEXTDLGCTL,1,0);
   if (key =VK_RETURN) or (key =VK_DOWN) then  perform(WM_NEXTDLGCTL,0,0);

VK_UP adalah tombol Panah KeAtas
perform(WM_NEXTDLGCTL,1,0); adalah perintah untuk memindahkan kursor ke komponen diatasnya ( setfocus ke Komponen yang ada diatasnya / Sebelumnya )

VK_Down adalah Tombol Panah Ke Bawah
VK_Return adalah Tombol Enter
perform(WM_NEXTDLGCTL,0,0); adalah perintah untuk memindahkan kursor ke komponen dibawahnya
setfocus ke komponen selanjutnya.
Jadi dengan cara ini, jika kita menggunakan banyak komponen Edit, maka kita tidak perlu mendefinisakn focus pada setiap komponen, tetapi cukup hanya pada satu komponen saja, kemudian komponen yang lainnya mengikuti Even OnKeyDown dari Komponen Edit yang pertama

Selamat Mencoba

13 comments:

  1. mau nanya. apakah kode ini disimpan pada setiap Tedit,?
    tidak adakah error dstu...?

    ReplyDelete
    Replies
    1. Tidak perlu di buat di setiap Tedit, cukup di satu Tedit saja,
      untuk Tedit yang lainnya cukup kita atur dari even on KeyDownnya, diarahkan ke Tedit yang sudah kita isikan kode kode ini,

      setelah itu kita atur Tab Ordernya agar urutannya sesuai dengan keinginan kita

      Delete
    2. kalo saja dari awal dijelaskan, mungkin tak akan keluar pertanyaan seperti ini.....
      OKE. it's work. for the best explaining.
      menghemat pengetikan set focus.
      thank you

      Delete
    3. sebenarnya sudah dijelaskan pada bagian akhir postingan :

      " Jadi dengan cara ini, jika kita menggunakan banyak komponen Edit, maka kita tidak perlu mendefinisakn focus pada setiap komponen, tetapi cukup hanya pada satu komponen saja, kemudian komponen yang lainnya mengikuti Even OnKeyDown dari Komponen Edit yang pertama"

      Delete
    4. Cara ngarahin ke tedit yg sdh kita bikin gmana caranya gan..

      Delete
    5. Cara ngarahin ke tedit yg sdh kita bikin gmana caranya gan..

      Delete
  2. button simpan seteleh di edit gimaa?

    ReplyDelete
  3. kalo tanpa tekan enter dan tab bisa nggak? seperti pada pengisian serial number, kursor akan pindah otomatis setelah jumlah karakter yang diketikan terpenuhi.. mohon pencerahannya.. makasih

    ReplyDelete
  4. Siiipp....tiipsnya sangat membantu terima kasih...

    ReplyDelete
  5. This comment has been removed by the author.

    ReplyDelete
  6. mau nanya, pada perform(WM_NEXTDLGCTL,0,0) 0,0 nya itu untuk apa ya? kok satunya 1,0?
    terima kasih...

    ReplyDelete
  7. Tombol Enter Untuk Lanjut Pada Komponen Edit - Aku Cinta Delphi >>>>> Download Now

    >>>>> Download Full

    Tombol Enter Untuk Lanjut Pada Komponen Edit - Aku Cinta Delphi >>>>> Download LINK

    >>>>> Download Now

    Tombol Enter Untuk Lanjut Pada Komponen Edit - Aku Cinta Delphi >>>>> Download Full

    >>>>> Download LINK

    ReplyDelete