Jumat, 23 Desember 2016

Catatan : Membuat Pesan Dialog Konfirmasi Sendiri

selamat siang sodara...oke waktunya mencatat lagi...

catatan kali mengenai message dialog, di Delphi terdapat sebuah form dialog yang bisa digunakan untuk menampilkan pesan, bisa pesan informasi, pesan peringatan, pesan error, pesan konfirmasi. nah, kali ini yang dapet kesempatan untuk tampil adalah pesan konfirmasi.

sebenernya kita bisa pake secara langsung message dialog yang sudah disediakan oleh Delphi, dengan perintah MessageDlg('Pesan',mtConfirmation, [mbYes,mbNo], 0); tapi biasalaaah iseeeng...😁 pengen utak-atik dan dimodif sendiri. sebenernya juga ga banyak modif, paling cuma dibikinin function sendiri trus sama ngrubah Caption tombol Yes jadi Ya dan No jadi Tidak...

oke langsung aja yah ke contoh kode nya, ini potongan kode function-nya dan pemanggilan function

naaaahh, kalo untuk hasilnya kaya gini...
Form Set Pesan
Pesan Pertama

Pesan Kedua

helllloooo...tolong perhatian bentar yak...itu ada Form untuk Set Pesan, maksudnya gini....itu cuma form yang saya buat untuk set pesan agar keliatan dinamis, tapi bisa juga dituliskan secara langsung pas manggil fungsi DialogKonfirmasi.

terus itu ada pesan pertama dan pesan kedua...coba diliat dibagian source code tadi...jadi Dialog yang muncul pertama adalah pesan pertama, terus kapan pesan kedua itu muncul??? jawabannya kalo tombol Ya pada pesan pertama di klik...kalo kita klik Tidak pada pesan pertama maka yang terjadi pesan kedua tidak akan pernah muncul selamanya...

oke biar lebih greget lagi, ini saya kasih full source code nya, bisa download disini. sepertinya sudah cukup catatan kali ini...silahkan di kembangkan lagi kode nya...salam 

Catatan : Validasi TEdit (Hanya Angka atau Hanya Huruf)

Wiiiii...nyatet lagi...nyatet lagi... 😎
masih membahas komponen TEdit, catatan kali ini membahas mengenai validasi inputan yang dimasukkan kedalam TEdit yang hanya bisa diisi angka saja atau huruf saja.

jadi gini maksudnya validasi...ketika sebuah komponen TEdit yang menggunakan validasi hanya angka, maka inputan selain angka akan dianggap salah, dan tidak dapat ditulis kedalam properti Text komponen tersebut. jika menggunakan huruf, juga akan menganggap salah apabila inputan bukan termasuk huruf.

oke, langsung saja ke contohnya ya... 😉 ow iya sebelumnya, untuk validasi ini kita menggunakan event onKeyPress. 

Contoh Kode Validasi Angka dan Huruf
Oke, saya jelaskan dulu maksud dari kode diatas ...
  • Perhatikan function Angka dan function Huruf. Keduanya mempunyai parameter dan nilai balikan yang sama hanya berbeda di kondisi dari isi function tersebut.
  • Untuk function Angka, pada perintah if not(Key in ['0'..'9',#8,#13,#32,#27]) then maksudnya adalah jika [Key] inputan bukan merupakan salah satu karakter 0 sampai 9,
    #8 artinya tombol Backspace,
    #13 artinya tombol Enter,
    #32 artinya tombol Spasi,
    #27 artinya tombol Escape / Esc
    maka [Key] inputan akan berisi null atau #0 kemudian muncul pesan dan mengisi value nilai balikan menjadi False

    *) angka yang ditandai pagar merupakan kode ASCII, untuk melihat Table ASCII bisa dilihat disini 
  • Untuk function Huruf hanya berbeda pada ['a'..'z', 'A'..'Z'] ini maksudnya huruf a kecil sampai z kecil, dan huruf A besar sampai Z besar. Pada komputer huruf besar dan huruf kecil dibedakan sendiri-sendiri.
  • Terakhir tinggal memanggil function pada masing-masing event OnKeyPress, untuk function Angka digunakan pada komponen Edit2 dan function Huruf pada komponen Edit3. Cara pemanggilannya cukup dengan menuliskan nama_function(value_parameter)
  • Untuk pemanggilan pada contoh diatas maksudnya adalah jika kondisi bernilai salah maka abaikan perintah inputan.
Okeyy...dan untuk hasilnya dari kode diatas adalah seperti ini. Silahkan download disini

Siipp...selesai untuk catatan kali ini, sampai jumpa lagi di catatan berikutnya...salam

eeeeeee....ada yang kelewat... 😁 kalo di Delphi yang udah pake VCL Komponen, itu uda ada properti NumbersOnly, tinggal set aja True atau False...hehehe



Oke...kalo ini beneran dah selesai...salaaaaamm

Catatan : Membuat Title Case TEdit Delphi

haii...
oke, ini catatan kedua saya...

kali ini saya akan mencatat mengenai cara membuat Title Case / Name Case untuk TEdit. jadi gini...komponen TEdit itu kan punya properti CharCase...nah value defaultnya itu cuma ada ecUpperCase, ecNormal, dan ecLowerCase. 

eh paham kan mengenai CharCase ini fungsinya apa???jadi properti ini yang nantinya akan membuat isi dari TEdit itu terisi dengan tulisan BESAR SEMUA [ecUpperCase], SesuAI inPutan [ecNormal], atau kecil semua [ecLowerCase]. nah...maksud dari Title Case itu agar isi dari TEdit itu menjadi seperti "Contoh Ini Adalah Isi Tedit", jadi setiap kata akan diawali dengan huruf besar semua...kaya gini nih...

Hasil Title Case / Name Case
nah gitu...biar bisa bikin TEdit kaya gitu, kita perlu menulis kode seperti ini ...
Kode Name Case dan Cara Memanggilnya

penjelasan dari kode nya kaya gini
  • jadi pertama itu kita bikin dulu prosedur nya, disini dikasih nama NameCase dengan parameter Edit
  • masuk ke prosedur NameCase, disitu ada percabangan if ... then, untuk mengecek jika Edit.Text itu kosong alias ga ada isinya maka Abort atau abaikan saja
  • baris berikutnya ada variable s yang diisi dengan UpperCase. ini untuk men-set atau membuat huruf awal dari isi TEdit menjadi UpperCase atau huruf besar
  • kemudian kita buat perulangan untuk cek huruf kedua dan seterusnya (sepanjang isi dari TEdit)
  • masuk ke percabangan lagi, ada kondisi dimana ketika i=5, i-1=4 adalah sebuah ' ' (baca: spasi)
  • maksudnya gini misal isi dari TEdit = Isi E maka urutannya [I,s,i, ,E] = [1,2,3,4,5]. E merupakan huruf terakhir yang berada diurutan ke-5, kemudian dilihat apakah urutan yang ke-4 itu berupa ' ' (baca: spasi) atau bukan
  • jika benar spasi maka urutan ke-5 menjadi huruf besar, jika tidak maka tetap huruf kecil
  • Terakhir, percabangan paling bawah itu digunakan untuk meletakkan kursor ke bagian paling akhir dari isi TEdit
hehehe...sory yak penjelasannya amburadul gitu...kalo mau liat kode nya bisa di download disini

terimakasih kunjungannya...salam

Kamis, 22 Desember 2016

Perbedaan Event OnKeyPress, OnKeyDown, OnKeyUp

Dalam sebuah pemrograman, sudah pasti akan kita temui proses input melalui keyboard. Proses input ini biasanya menggunakan event dari sebuah komponen, event-event yang digunakan antara lain OnKeyPress, OnKeyDown, dan OnKeyUp.

Event Key
Oke...ini bukan catatan seperti biasanya, tapi untuk postingan kali ini hanya akan menjelaskan mengenai perbedaan dari OnKeyPress, OnKeyDown, OnKeyUp. 



OnKeyPress : event ini menangkap sebuah karakter yang sebenarnya. yang mana karakter ini terdapat pada sebuah key pada tombol keyboard, proses ini sementara akan terus berjalan ketika key tersebut ditekan. 

contoh
: sering kita jumpai huruf kecil dan huruf besar dengan capslock, untuk karakter huruf besar dan huruf kecil itu berbeda, karakter 'n' berbeda dengan karakter 'N'. Ketika kita menggunakan event OnKeyPress, maka karakter yang dibaca adalah karakter yang sebenarnya. jika yang ditekan adalah karakter 'n' maka hasilnya adalah 'n' tidak bisa menjadi karakter 'N'

atau begini, kalo kita liat keyboard biasanya dalam satu tombol terdiri dari dua karakter misalkan tombol ',' (koma) itu jadi satu dengan tombol '<' (kurung sudut), nah...kalo misal kita menggunakan OnKeyPress berarti kita mencari karakter yang sebenarnya, bisa ',' atau '<'.

OnKeyDown : event ini sebenarnya hampir sama dengan OnKeyPress, catet "hampir sama" bukan berarti semuanya sama. Disini ada perbedaan antara keduanya. yaitu karakter yang dibaca tidak harus sebenarnya. 

contoh : di Delphi, OnKeyDown membaca karakter dengan tipe data Word. disini tidak perlu menggunakan karakter asli. misalkan untuk huruf besar dan kecil itu jadi satu dengan cara seperti ini... Key := Ord('N') maka key tersebut akan membaca huruf N tanpa memperhatikan karakter huruf kecil atau huruf besar.

OnKeyUp : event ini kebalikan dari OnKeyDown, OnKeyDown membaca karakter ketika tombol ditekan, sedangkan OnKeyUp membaca karakter ketika tombol dilepaskan setelah ditekan. Jadi ketika kita menekan tombol angka '1', komputer belum membaca ada sebuah inputan. Tapi ketika tombol itu dilepas maka barulah komputer membaca inputan berupa angka '1'.

Okey...semoga bisa memahami tulisan saya yang amburadul ini...salam

Catatan : Cara Mengosongkan Isi Edit Text Delphi

hemm...mulai dari mana ya??? gini aja deh...maap ya aku anggep semua dah tahu tentang Delphi dan bahasa pemrograman Pascal. 

okeee, kita mulai. 
ini catatan pertamaku, maaf kalo tulisannya masih amburadul yak...😄

yang ingin ku catat kali ini mengenai cara untuk mengosongkan isi komponen TEdit atau turunan dari class TCustomEdit. gini...biasanya ketika kita membuat sebuah program, kita menggunakan komponen TEdit untuk melakukan inputan. nah...terus setalah selesai melakukan inputan kita juga pasti akan membersihkan isi dari inputan tersebut kan...biasanya kita akan memanggil satu per satu nama dari setiap komponen TEdit kemudian bersihkan satu per satu...kaya gini nih...

Contoh Form
Contoh Kode Memanggil Satu Per Satu Nama Komponen

oke...itu contohnya kalo manggil nama komponen satu per satu. sebenarnya ga ada masalah sih, tapi misalkan dalam satu form terdapat banyak komponen TEdit, bisa kebayangkan berapa baris yang harus dituliskan di kode hanya untuk menghapus isi nya.
nah...oleh sebab itu saya ingin mencatat cara yang kadang digunakan untuk menghemat baris kode 😁
begini caranya...

Contoh Kode Membersihkan Isi Komponen
disini saya membuat procedure baru, dengan nama "bersihEdit", sebenernya bisa langsung pake procedure dari event onClick-nya si TombolBersih...tapi bisa juga dibikinin prosedur sendiri.

nah...pakai cara gini, kita ga perlu nulis nama tiap komponen TEdit...udah dicariin tu sama programnya... 😄 




Gini penjelasan dari baris kode nya :

  • Pada prosedur bersihEdit, kita akan melakukan perulangan menggunakan for ... to ... do
  • Pada baris kondisi for itu ada kode ComponentCount, ini maksudnya jumlah komponen yang ada pada Form Parent nya, yaitu TForm1
  • Nah...didalam for itu ada percabangan menggunakan if ... then, kondisinya adalah jika komponen yang ditemukan itu adalah TEdit maka perintah selanjutnya dijalankan
  • Terakhir, menjalankan perintah untuk menghapus isi TEdit
  • Selesai
Tambahan : ini contoh untuk komponen TEdit, untuk komponen lain bisa di explore sendiri yak...tinggal nambahin percabangan lagi aja, misal untuk membersihkan TComboBox berarti kita cukup menambahkan percabangan 

if Components[i] is TComboBox then 
  TComboBox(Components[i]).ItemIndex := -1;

Oke...untuk contoh programnya bisa di download disini catatan pertama sampe sini dulu lah ya...salam