PHP-GTK2 Kütüphaneleri ile TIME Programı

Merhaba Arkadaşlar.

Yine başka bir php-gtk2 programıyla karşınızdayım.Bu programımızda php ile masaüstü programcılığına devam ediyoruz ve bilgisayarımızın saatini formumuzun üzerinde görüntüleyeceğimiz bir program yapacağız.Ayrıca da yaptığımız programda fonksiyon da kullanarak fonksiyon kullanımını göreceğiz.Hadi o zaman başlayalım.

Evet arkadaşalar .Önce kodlarımızı yazacağımız editörümüzü açalım.ve aşağıdaki kodları yazalım.

<?php
//Simple clock using Gtk::timeout_add() 

//At first, we need a label displaying the time

$lbl = new GtkLabel(’Clock’);

//Now, call function “onTimeout” every 1 second

// (1 second == 1000 milliseconds)

//Also pass $lbl as parameter so we can

// change it in the function without using

// global variables (bad!)

Gtk::timeout_add(1000, ‘onTimeout’, $lbl);

 //our callback function has one parameter,

// the one we defined in Gtk::timeout_add()

function onTimeout($lbl)
{
   
//do the things we want to do

    $lbl->set_text(date(’H:i:s’));

   //at the end, return “true” if the timeout shall

    // be executed again. If you don’t return anything

    // or return false, the timeout is stopped.

    return true;

}

 //standard stuff

$wnd = new GtkWindow();

$wnd->connect_simple(’destroy’, array(’gtk’, ‘main_quit’));

$wnd->add($lbl);

$wnd->show_all();

Gtk::main();

?>

 Bu kodları yazdıktan sonra programımızı time.php olarak php-gtk2 kütüphanelerini kurduğumuz dizine kaydedelim.(Eğer programımızı nasıl çalıştırcağımızı bilmiyorsak lütfen “Hello World Programı” nı birkez daha gözden geçirelim.)Daha sonra Başlat->Çalıştır->C:\PHP-GTK2\php.exe time.php yazarak Tamam butonuna tıklayalım ve yukarıdaki görüntüyle karşılaşacağız.Yani bilgisayarımızın saati ekranımızda olacak.

 Sıra geldi kodları açıklamaya.

$lbl = new GtkLabel(’Clock’);

Bu kodumuzda bir formumuzun üzerinde bir label (Masaüstü programcılığı ile ilgili başka prog. Dilleriyle uğraşanlar bilirler) nesnesi oluşturacağız.Label nesneleri bldiğiniz gibi Formumuzun üzerine sabit bir metin yazmak istediğimizde kullanacağımız bir sınıftır.Label nesnemizi oluşturuyoruz ve “$lbl” ismini veriyoruz.Artık “$lbl” ismiyle heryerde kullanabiliriz.

 Gtk::timeout_add(1000, ‘onTimeout’, $lbl);

 Zaman programı yapıyoruz dedik ya, bu nedenle Php-Gtk2 kütüphanelerinin zamanlamayla ilgili sınıfını kullanacağız.yani “timeout_add” fonksiyonunu.Bu fonksiyonu kullanırken “Gtk::” şeklindede Gtk sınıfına ait bir fonksiyon olması nedeniyle bu şekilde kullanıyoruz.Evet bu fonksiyonu açıklamak gerekirse

Gtk::timeout_add(‘Zaman birimi, milisaniye olarak girilir’, ‘Kullanacağımız fonksiyon adi’, fonksiyonun içindeki kullanacağımız değişken.orada “$lbl” sadece kolaylık olsun diye bu ismi kullandık.yani Label sınıfıyla bir alakası yok.o kısım sadece fonksiyona göndereceğimiz değişken değeridir.yani isterseniz oraya “$isminizi” yazabilirsiniz.   );

Burada yaptığımız her 1000ms (1 sn) de “onTimeout “ fonksiyonunu çağırıyoruz.

Gelelim Fonksiyona

function onTimeout($lbl)

{

    //do the things we want to do

    $lbl->set_text(date(’H:i:s’));
   //at the end, return “true” if the timeout shall

    // be executed again. If you don’t return anything

    // or return false, the timeout is stopped.

    return true;

}

 Burada  kullanacağımız fonksiyonu nasıl tanımladığımızı görüyoruz.Php ile yapılanın aynısı.zaten bir fark ta beklenemez.Bu fonksiyon içinde php nin bildiğimiz date(zaman) fonksiyonu nu kullanmaktayız.ve o fonksiyondan dönen değeri “$lbl” yani GtkLabel nesnemize “set_text” özelliğiyle  yazdırıyoruz.Anlaşılması son derece kolay.

 $wnd = new GtkWindow();

$wnd->connect_simple(’destroy’, array(’gtk’, ‘main_quit’));

$wnd->add($lbl);

$wnd->show_all();

Gtk::main();

 Son olarakta “Hello world Programını” okuyanlar bilirler.Php ile masaüstü programcılığı yaparken her şeyi elle yazarak yapıyorduk.burada Formumuzu GtkWindow nesnesi ile oluştururuyoruz.”$wnd” ismini verdiğimiz bir değişkeni kullanarak oluşturduk.daha sonra “connect_simple” ki burada $wnd ile oluşturduğumuz forumumuza “destroy”(yani formumuzun kapatılması durumununda hafızadan kapladığı alanın silinmesi) işlemini yaptırıyoruz.Burada “array(‘gtk’,’main_quit’) “ kısmı ise formumuzu temsil ediyor.kısacası yazdığımız tüm programdlarda bu şekilde kullanacağız.

 Daha sonra formumuza Label nesnemizi ekliyoruz. Yani $wnd->add($lbl) şeklinde.ve GtkWindow nesnemizi ekranda görüntülemek için “show_all” fonksiyonunu kullanıyoruz.”Gtk::main” yazarak ( C dilindeki main() fonksiyonu gibi düşünün) programın çalışmasını sağlıyoruz.

 Evet arkadaşlar .Bu programımızda sizlere zamanlama programının nasıl yapıldığınız ve nasıl fonksiyonlar kullanıldığını göstedim.İnşaallah sizlerin anlayacağı şekilde anlatmışımdır. Bir sonraki programımızda görüşmek dileğiyle.Sorularınızı ve görüşlerinizi Bekliyorum.

 

Share your opinion! Post your thoughts.