Membuat timer pada visual prolog cukup sederhana, cukup
mengaktifkan fungsing onTimerListener dan memasukkan sedikit coding, fungsi
dari timer sendiri bisa dimanfaatkan untuk berbagai keperluan, seperti animasi,
perputaran nilai, pergerakan koordinat, dll.. tergantung kemampuan kita dalam
membuat kondisi untuk timer.
Pertama-tama, buka propertis project, kemudian pilih tab
event, seperti gambar diatas. Kemudian cari TimerListener, dan aktifkan
timerListener menjadi OnTimer seperti gambar diatas.
Maka secara otomatis, akan tampil source code predicates
dan clauses pada project kita.. source code yang tampil adalah sebagai berikut
predicates
onTimer : window::timerListener.
clauses
onTimer(_Source, _TimerId).
onTimer : window::timerListener.
clauses
onTimer(_Source, _TimerId).
Selanjutnya modifikasi source code menajadi
predicates
onTimer : window::timerListener.
clauses
onTimer(_Source, _TimerId):-
not(isErroneous(timerNum)), !,
onTimer(_Source, _TimerId).
onTimer : window::timerListener.
clauses
onTimer(_Source, _TimerId):-
not(isErroneous(timerNum)), !,
onTimer(_Source, _TimerId).
Selanjutnya kita deklarasikan variabel baru yang nantinya
akan digunakan untuk mengaktifkan timer,
facts
timerNum : timerID := erroneous.
delay : integer := 25.
timerNum : timerID := erroneous.
delay : integer := 25.
Kita buat pada bagian facts, timerNum : timerID := erroneous. Untuk pendeklarasian fungsi timer, dan
nilai delay : integer := 25. Sebagai delay waktu untuk timer, semakin
besar nilainya semakin lambat delay timer, dan semakin kecil, maka akan semakin
cepat delay timer.
Selanjutnya untuk mengaktifkan timer, digunakan statement
berikut, Bisa kita tempatkan didalam blok button, untuk mengaktifkan timer.
timerNum := timerSet(delay).
Dan untuk menghentikan timer, menggunakan statement
berikut
timerKill(timerNum),
timerNum := erroneous.
timerNum := erroneous.
Dan untuk source code membuat dadu berputar 1 sampai 6,
source codenya sebagai berikut
onTimer(_Source, _TimerId):-
not(isErroneous(timerNum)), !,
if (d>6) then
d:=1
end if,
dadu_ctl:setText(tostring(d)),
d:=d+1.
onTimer(_Source, _TimerId).
not(isErroneous(timerNum)), !,
if (d>6) then
d:=1
end if,
dadu_ctl:setText(tostring(d)),
d:=d+1.
onTimer(_Source, _TimerId).
Kondisi diatas jika dadu lebih dari 6, maka akan
megembalikan nilainya menjadi 1.
LALU GIMANA MEMBUAT TIMER LEBIH DARI 1 DALAM 1 FORM...???
caranya sederhana, tapi agak ribet.. berikut langkah2nya..
pertama, buat blok timer dengan nama yang berbeda dari timer yang sebelumnya kita buat..
selanjutnya ditambahkan pendeklarasian variabel baru untuk timer2..
LALU GIMANA KALAU MENGGUNAKAN 2 FORM DENGAN TIMER YG BERBEDA..?
tinggal lakukan langkah diatas, namun di tempatkan di source code form yang kedua.
LALU GIMANA MEMBUAT TIMER LEBIH DARI 1 DALAM 1 FORM...???
caranya sederhana, tapi agak ribet.. berikut langkah2nya..
pertama, buat blok timer dengan nama yang berbeda dari timer yang sebelumnya kita buat..
onTimer2(_Source, _TimerId):-
not(isErroneous(timerNum2)), !,
if (d>6) then
d:=1
end if,
dadu_ctl:setText(tostring(d)),
d:=d+1.
onTimer2(_Source, _TimerId).
not(isErroneous(timerNum2)), !,
if (d>6) then
d:=1
end if,
dadu_ctl:setText(tostring(d)),
d:=d+1.
onTimer2(_Source, _TimerId).
selanjutnya ditambahkan pendeklarasian variabel baru untuk timer2..
facts
timerNum2 : timerID := erroneous. % timer 1
delay : integer := 25. % timer 1
timerNum2 : timerID := erroneous. % timer2
delay2 : integer := 25. % timer2 jika delaynya berbeda
timerNum2 : timerID := erroneous. % timer 1
delay : integer := 25. % timer 1
timerNum2 : timerID := erroneous. % timer2
delay2 : integer := 25. % timer2 jika delaynya berbeda
Selanjutnya untuk mengaktifkan timer, sama seperti sebelumnya, namun kali ini ditambahkan statement addTimerListener
addTimerListener(onTimer2), % penambahan statement
timerNum2 := timerSet(delay).
addTimerListener(onTimer2), % penambahan statement
timerNum2 := timerSet(delay).
Dan untuk menghentikan timer yang ke-dua, menggunakan statement
berikut
timerKill(timerNum2),
timerNum2 := erroneous.
timerNum2 := erroneous.
LALU GIMANA KALAU MENGGUNAKAN 2 FORM DENGAN TIMER YG BERBEDA..?
tinggal lakukan langkah diatas, namun di tempatkan di source code form yang kedua.
untuk melihat semua materi mengenai visual prolog, bisa dilihat disini..
VISUAL PROLOG
1 komentar:
bagaimana cara untuk memindahkan koordinat??
masih binggung dengan penjelasan tentaang koordinatnya
Posting Komentar
untuk menggunakan emotion di bawah, silakan masukkan kode di samping emoltion.