Jumat, 15 November 2013

Button, Background, New Window, Message Box, dan Menu pada Strawberry Prolog

Kali ini, saya akan membahas mengenai button, background, new window, message, dan menu.

G_bgawal is bitmap_image("awal.bmp",_),
G_bgakhir is bitmap_image("akhir.bmp",_),
window(_, _, jendela_utama(_), "Main Window - Nanda Maya Utari", 50,50,520,540). 

Pada perintah diatas terdapat 3 variabel, yaitu G_bgawal, G_bgakhir, dan jendela_utama. Variabel G_bgawal adalah nama alias sebuah file bernama awal.bmp. Variabel G_bgakhir adalah nama alias sebuah file bernama akhir.bmp. Semua file gambar harus bertipe bitmap dan berada pada folder yang sama dengan file prolog. Jika lokasi file gambar tidak sama dengan lokasi file prolog, berikan lokasi yang jelas. Sedangkan variabel jendela_utama adalah variabel yang digunakan sebagai nama alias dari jendela utama (Main Window). Titik kiri atas dari jendela utama ini berada di posisi 50, 50 (X1, Y1) dan mempunyai ukuran 520x540 pixels.


jendela_utama(init) :-
button(G_button,_,new_window(_),"&New window",320,210,100,35),
button(G_button,_,npm(_),"&NPM",320,250,100,35),
button(G_button,_,kelas(_),"&Kelas",320,290,100,35),
button(G_button,_,keluar(_),"&Keluar",320,330,100,35).

Bentuk Umum :
button(Handle, Parent, Button_func(_), Title, X, Y, Width, Height)

Handle
handle. Use _ if you don't need it. 
Parent
handle of the parent window. Use _ for default.
Button_func
Nama alias dari tombol (variabel)
Title
Judul jendela (window)
X,Y
Koordinat dari sudut kiri teratas
Width, Height 
Ukuran dari jendela (window)

Init : dieksekusi saat pembuatan jendela (window). Berguna untuk pembuatan menu dan tombol. Terdapat 4 buah tombol pada jendela utama, yaitu tombol New window, NPM, Kelas, dan Keluar. Keempat tombol tersebut mempunyai ukuran 100x35 pixels. Masing-masing tombol mempunyai nama aliasnya masing-masing.


jendela_utama(paint):-
draw_bitmap(0,0,G_bgawal,_,_).

Bentuk Umum :
draw_bitmap(X, Y, Bitmap, _, _)

X : koordinat titik X
Y : koordinat titik Y
Bitmap objek bitmap (nama variabel objek)

Perintah draw_bitmap digunakan untuk memanggil objek gambar yang sebelumnya sudah dideklarasikan. Titik 0,0 adalah titik dimulainya kemunculan gambar yaitu dari titik 0,0 (berdasarkan sudut kiri teratas). Dengan kata lain kita dapat memasukkan gambar ke dalam program dan menjadikannya background untuk program yang kita buat. Nama variabel yang saya panggil adalah G_bgawal yang sebelumnya sudah dideklarasikan sebagai variabel yang menyimpan objek gambar.


new_window(press) :-
close_window(parent(_)),
window(_, _, jendela_kedua(_), "Second Window - Nanda Maya Utari", 50,50,460,640).

Tombol ini digunakan untuk memunculkan jendela baru. Perintah Press : this message is sent to a button or to menu item when it was pressed. Perintah close_window digunakan untuk menutup jendela yang sedang aktif. Setelah jendela yang sedang aktif tertutup, maka jendela kedua akan muncul dengan nama variabel jendela_kedua.


jendela_kedua(init) :-
menu(pop_up, _, _, menu_menu(_), "&Menu"),
menu(normal, _, _, menu_exit(_), "&Exit").

Pada perintah diatas, saya membuat menu bar pada jendela kedua. Terdapat menu yang bersifat pop-up dan ada juga yang bersifat normal. Menu yang bersifat pop-up mempunyai submenu, sedangkan menu yang bersifat normal tidak mempunyai submenu dan langsung bisa dieksekusi.


menu_menu(init) :-
menu(normal, _, _, back_utama(_), "&Main Window").
menu_exit(press) :-
not(yes_no("Konfirmasi","Apakah Anda yakin ingin keluar?",?)->close_window(_)).

Selanjutnya kita membuat isi dari menu Menu atau dengan kata lain kita membuat submenu. Submenu yang dibuat ini mempunya nama alias back_utama. Submenu ini digunakan untuk kembali ke jendela utama. Sedangkan untuk menu exit, menu ini digunakan untuk keluar dari program. Sebelum menutup jendela (window), akan ada pertanyaan konfirmasi yang jika Anda memilih pilihan Yes, maka jendela akan tertutup dan jika Anda memilih pilihan No maka program akan terus berjalan.


npm(press) :-
message("Help","xxxxxxxx", !).
kelas(press) :-
message("About","xxxxx", ?).

Untuk perintah diatas, perintah ini dimasukkan ke dalam variabel npm dan kelas yang mana variabel ini dideklarasikan sebagai variabel untuk NPM dan Kelas.

Bentuk umum :
message(Title, Text, Icon)

Title 
Judul dari kotak dialog
Text 
Teks yang ada di dalam jendela (biasanya menampilkan informasi)
Icon
Mendefinisikan icon dari kotak dialog

Message Icons
!  Asterisk
?  Question
s  Stop
i  Information
n  no icon

Contoh Output Program (saya punya backgorund sendiri) :











0 comments:

Posting Komentar