[LinuxFocus-icon]
<--  | Ana Sayfa  | Eri�imd�zeni  | ��indekiler  | Arama

Duyumlar | Belgelikler | Ba�lant�lar | LF Nedir
Bu makalenin farkl� dillerde bulundu�u adresler: English  Castellano  ChineseGB  Deutsch  Francais  Russian  Turkce  

Jonas Alvarez
Jonás Alvarez
<jalvarez(at)eitb.com>

Yazar hakk�nda:

Jon�s Alvarez unix ve windows ortamlar�nda uzun y�llar uygulama geli�tirici olarak �al��t�. Di�er yandan bir�ok O.S., A� ve Geli�tirme kurslar� vermi�tir.



T�rk�e'ye �eviri:
�nan� �z�ubuk�u <inanco(at)atlas.net.tr>

��erik:

 

Gambas: Linux ��in Basic

Dibujo de una gamba

�zet:

Gambas, Linux i�in eri�ilebilir bir Basic Programlama Dilidir. G�nl�k i�ler i�in Gambas'�n ne kadar basit fakat g��l� oldu�unu g�rebilece�imiz bir �rne�i burada geli�tirece�iz.


_________________ _________________ _________________

 

Giri�

En yayg�n ve basit programlama dillerinden birisi, temelde yeniler i�in, Basic'tir. �u ana kadar Basic i�in en yayg�n uygulama geli�tirme ortam� Microsoft Visual Basic IDE idi. Son zamanlarda Linux kullan�c� makinelerine Linux yay�lmakta. Sunucularla ve Guru lar�n kullan�m�yla s�n�rl� kalmay�p istemci bilgisayarlar� i�in OS olmaya ba�lam��, elektronik mesaj okuma gereksinimlerina cevap verebilir, sanal y�rede dola�abilir ve dosya de�i�tirebilir olmu�lard�r. Bunu takiben baz� Basic geli�tirme ortamlar� art�k mevcuttur. Gambas yaz�m�zda da g�r�ld��� �zere BASIC geli�tirme i�in grafik aray�zl� bir ortamd�r. Visual Basic ile benzer programlama tarzlar� olmas�na kar��n, sonradan g�rece�imiz �zere farkl�l�klar� vard�r. Kullanaca��m s�r�m SUSE 9.0 da��t�m� �zerinde 0.64a'd�r. Bu sat�rlar� yazarken Gambas proje sayfas� 'nda son s�r�m�n 0.81 oldu�unu g�r�yoruz ancak bu bizim yaz�m�z� etkilemiyor.

 

Gambas ile kimler ilgilidir?

Bir s�redir Visual Basic uygulamalar� geli�tiricisi olarak bu �rne�i olu�turmak i�in sadece ba�lang�� yapt�m, daha fazlas�na gereksinim duymad�m. Bu benim Gambas ile ilk tan��mam ve g�z�ken o ki Visual Basic kullanm�� herhangi birisi Gambas'� kullanabilir. Basic'in bir�ok �ey i�in ne kadar yararl� oldu�unu g�sterir bir �rnek olabilir.

 

�rnek

Madem ki yaparak ��renmeyi seviyorum, ekranda gerisay�m arac� olan bir basit bir saat uygulamas� �rne�iyle ba�layal�m. Zaman� de�i�tirebilir, istedi�imiz zaman durdurup yeniden ba�latabiliriz.

Gambas'� �al��t�r�r �al��t�rmaz yard�mc�s� ile kar��la��yoruz:

startup


New Project se�ene�ini se�iyoruz. Sonraki ekranda Project Name bize soruluyor. Projemize CountDown ad�n� veriyoruz.Second Dialog da project directory se�meliyiz. �al��ma dizinimizi se�iyor ve a�a��daki kutucu�una yarataca��m�z dizin ad�n� giriyoruz.

new project


E�er ilk kez Gambas �al��t�r�yorsak yada se�ene�i iptal etmediysek g�n�n ipucunu g�rece�iz. Bizi ilgilendiren bir�ey var m� diye bak�yor ve pencereyi kapat�yoruz. �al��ma ortam�n�n i�erisindeyiz, �al��maya haz�r�z. Masa�st�nde bir�ok pencere g�rebiliriz. E�er KDE gibi bir ortam i�erisindeysek, bir�ok masa�st� ile bir tanesini Gambas ile ili�kilendirmek isteyebiliriz. Ki�isel olarak genelde ilk aktifle�tirdi�im se�eneklerden birisi her masa�st�n�n kendi ikonlar�n� g�stermesidir.

Uygulaman�n ana formunu olu�turuyoruz. Bunun i�in proje ekran�n�n her hangi bir yerinde sa� tu�a bas�yor ve yeni bir form olu�turuyoruz.

new form


Form ismini belirtiyoruz, �rne�imizde FCountDown, geri kalan t�m de�erleri kabul edildi�i �ekilde b�rak�yoruz.

new form dialog


�imdilik bo� olmakla beraber ilk formumuzu yaratm�� bulunmaktay�z.

form


Burada saatimizin sahip olaca�� denetimleri ekleyece�iz. Formumuza ekleyeceklerimiz i�in element ara��ubu�una t�kl�yoruz. denetimlerin �zerinden fareyi ge�irirsek isimlerini g�rebiliriz. �ift t�klama ile denetim formun sol �st k��esine yerle�ir. Tek t�klama ile boyutunu de�i�tirebilir, formun istedi�imiz yerine ta��yabiliriz. Program�m�z i�in bir Etikete, Text Kutusuna, Sayaca, �ki Butona ve bir ToggleButton'a gerek olacak.

controls


T�m denetimler yerinde oldu�unda �una benzer bir �ey (az yada fazla, herkes kendi istedi�ini koyabilir) elde etmeliyiz :

controls in place


denetimleri forma koyduktan sonra isimlerini bizim i�in anlaml� olacak �ekilde de�i�tiriyoruz. Bunu i�in Property sheet in Name �zelli�ini kullan�yoruz. E�er Properties sheet 'i ekranda g�rebilirsek proje ekran�ndan �zellik se�ene�inden aktive edebiliriz. Aramak i�in faremizi butonlar�n �zerinde gezdirebiliriz.

Label1 isimli denetimi lblContador olarak de�i�tiriyorum: denetimi t�kl�yorum ve sonra Property Sheet i�erisindeki ismini de�i�tirebiliyorum. Bunu i�in Name �zelli�ini kullan�yor ve lblContador 'u de�er olarak at�yorum. Bundan sonra yaz� boyutunu daha b�y�k bir tanesiyle de�i�tiriyorum. Bunun i�in butonun font �zelli�inden Courier Bold 72 'u se�iyorum ve Kabul (OK) diyorum. Ayn� yolla, ToggleButton1 ismini tglFuncionando olarak de�i�tiriyorum. TextBox1 denetim txtSegundos, Timer1 denetim clkMiReloj, Button1 ise cmdPonerSegundos oluyor ve son olarak Button2'yu cmdSalir olarak adland�r�yorum. Bunun yan�s�ra txtSegundos Alignment '� Right olarak de�i�tiriyorum.

Ve temel kodu �al��t�r�yoruz. Olduk�a basit ve dizimde �ok kat� de�il. �lk yapt���m�z formda g�rd�klerimizi daha ger�ek�i de�erlerle de�i�tiriyoruz. Basic'ten beri se�eneklerin �o�unlu�unun de�i�mesine kar��n denetim �zelliklerinden de bunu yaparak ayn� sonuca ula�abilirdik.

Form a��l�r a��lmaz istedi�imiz ba�l�klar� dolduruyoruz. Form a��l�r a��lmaz derken bir olay� idare etmekten bahsediyorduk: formu a�mak. Bunu i�in formun denetim olmayan bir k�sm�na �ift t�kl�yoruz. A��lan pencereyi d�zenliyor ve faremiz yeni bir prosed�r�n i�erisine yerle�iyor: Public Sub Form_Open() (e�er daha �nce Visul Basic'te programlad�ysak Form_Load '� kullanabiliriz. lblContador denetimini gerisay�mda �ng�r�len saniyeleri g�stermek i�in kullanaca��z. Kodun ilk sat�rlar� �una benzemektedir:

' Gambas class file
CONST fSegundosPorDefecto AS Float=120.0
fSegundos AS Float

PRIVATE SUB VerValores()
  DIM nMinutos AS Integer

  nMinutos = Int(Int(fSegundos) / 60)
  lblContador.Caption = nMinutos & ":" & Format (fSegundos -
                                                nMinutos * 60, "00.0")
END

PRIVATE SUB VerActivarDesactivar()
  IF tglFuncionando.Value THEN
    tglFuncionando.Text = ("&Detener")
  ELSE
    tglFuncionando.Text = ("&Arrancar")
  ENDIF
END

PUBLIC SUB Form_Open()
  fSegundos = fSegundosPorDefecto
  VerValores
  tglFuncionando.Value = FALSE
  VerActivarDesactivar
  txtSegundos.Text = fSegundos
  cmdPonerSegundos.Text = ("&Reiniciar")
  cmdSalir.Text = ("&Salir")
END

Gambas'�n olu�turdu�u Gambas class file bilgisi arkas�na 120 saniye (iki dakika) de�eri ile saniye say�lar�n� tutan bir sabit fSegundosPorDefecto ve gerisay�m� durduracak bir de�i�ken fSegundos ekledik. �ki prosed�r daha yaratt�k: VerValores, gerisay�m de�erlerini canland�r�yor ve VerActivarDesactivar, Start/Stop butonundaki yaz�y� de�i�tiriyor.

Bu noktada zaten �al��an bir formumuz bulunmakta. Kullan��l� bir �ey yapmasa da �u ana kadar neler yapt���m�z� anlamam�za uzaktan yarayan denenebilir bir �ey. Projenin anasayfas�ndan yapt���m�z de�i�iklikleri kaydediyoruz Project CountDown ve F5 ile yada ayn� ekran�n buton bar�ndaki Execute butonu ile uygulamay� �al��t�r�yoruz. G�rmemiz gereken:

Project CountDown


E�er bu ekranda belirmez yada hata al�rsak yapt�klar�m�z� g�zden ge�irmeliyiz. Start, Reset yada Exit 'e bast���m�zda hi�bir sonu� alam�yorsakta g�zden ge�irmeliyiz. �kinci i�imiz �u olacak: Bir tak�m y�ntemle butonlara olay atay�p kullan�c� bunlardan birine dokundu�unda oynayacak. Devam etmeden �nce uygulamam�zla biraz oynayarak t�m i�erdiklerini ke�fedelim. Kapatmak i�in sa� �st k��edeki X'e basabiliriz. Formlarda g�rebilece�iniz gibi KDE kullan�yorum ve pencerenizi ba�ka y�ntemle kapatman�n yolu muhtemelen vard�r.

Buton �zelliklerinden en sabiti �zerinden gidelim: kullan�c� Exit 'e bas�nca ne olmal�? Uygulamay� sonland�rmal�y�z. Bunu sa�lamak i�in temel kodu verebilmek i�in buton �zerindeki Exit yaz�s�na �ift t�kl�yoruz (cmbExit). G�r�yoruz ki Gambas bir tak�m kod sat�rlar� olu�turmakta ve faremiz bunlar�n aras�nda durmakta. ��te kodun girilmesi gereken yer buras�. Bu prosed�r kullan�c� bu butona t�klad��� zaman �al��acak. Uygulamay� kapatmak i�in Me.Close 'u i�letmeliyiz. Bu olay�n kodu �u olacak:

PUBLIC SUB cmdSalir_Click()
ME.Close
END

Denetleyece�imiz di�er bir buton da Reset. Ayn� yolla: butona �ift t�kl�yoruz ve Gambas'�n bize g�sterdi�i kod i�erisine �unu ekliyoruz:

PUBLIC SUB cmdPonerSegundos_Click()
fSegundos = txtSegundos.Text
VerValores
END

Bu noktada halen bir �ey olmuyor gibi duruyor. Uygulamam�z baz� tepkiler vermeli. Ba�tan itibaren formda yer alan Timer objesini aktive edece�iz. Bunun i�in saat olaylar�n� alacak olan arac�y� ayarl�yoruz. Bunu �nceki olaydan Form_Open kodtan yap�yoruz yada form i�erisine koyuyoruz. �imdi �u �ekilde yap�yoruz. Formda Timer objesini t�kl�yor ve property sheet i�erinden Delay de�erini her onuncu saniyede bir olay� almak i�in 1000ms 'den 100'e de�i�tiriyoruz. Bu bizim saat durdurucumuzu belirleyecek.

Halen saat her hareketlendi�inde �al��acak ve onu aktive edecek yolumuz yok. Saat kodunu olu�turmak i�in her zamanki basit y�ntemle saat formuna �ift t�kl�yoruz. Bu bizi sa� tarafta kod penceresine g�t�recek. Kodumuzu yerle�tirdikten sonra g�r�nmesi gereken �u �ekildedir:

PUBLIC SUB clkMiReloj_Timer()
  IF fSegundos < 0.1 THEN
    tglFuncionando.Value = FALSE
    tglFuncionando_Click
  ELSE
    fSegundos = fSegundos - 0.1
    VerValores
  END IF
END

Ve sonunda saat durdurucu d��meyi aktifle�iyoruz. Ancak hen�z idaresini yapm�yoruz. �ift t�klama ile bu olay i�in kodu girebiliriz:

PUBLIC SUB tglFuncionando_Click()
  clkMiReloj.Enabled = tglFuncionando.Value
  VerActivarDesactivar
END

Ve �al��mam�z� test edebiliriz.

 

Son nokta: Gambas olmas� gerekti�i gibi �oklu dil deste�ine sahiptir.

E�er koda bakacak olursan�z de�erlerin parantez i�erisinde oldu�unu g�receksiniz. Gambas bunlar� terc�me edecektir. Formun yaz� denetimi i�in bu gerekli de�ildir. Projemiz �ok kullan��l� bir hal ald� ve insanlar kendi dillerinde g�rmek istiyorlar. Proje penceresinde Project / Properties men�s�ne gidiyoruz.

project properties

Burada projemize bir Ba�l�k belirliyoruz ve dialoglar�n terc�mesine imkan sa�l�yoruz. �imdi aktif men�lerde yeni bir se�ene�imiz var: Project / Translate. Dialo�u a�arsak �evirinin �ok sezgisel olmad���n� g�r�r�z:

project translation

�nce �st k�s�mda hedef dili se�iyoruz. Bir de�eri �evirmek istedi�imizde se�iyor ve buton k�sm�n� i�aretliyoruz. Bir kez t�m de�erler �evrildi mi denemeyi e�er LANG de�i�kenini ayarlad�ysak yapabiliriz. E�er �evirinin ingilizcede nas�l g�r�nd���ne bakmak istiyorsam Gambas'� kapat�yor ve �unu i�letiyorum:

$ LANG=en_US; gambas

�nceki duruma d�nmek i�in KDE men�s�nden Gambas'� �a��r�yorum. Bunun sebebi sadece �evre de�i�keninin hen�z belirlenmemi� olmas� ve bu sebeple konsoldan eri�ilebilmesidir.

 

Sonu�

Orta seviye bir dil olmas� ve t�m Gambas'�n y�kl� olmas� gerekmekle beraber Linux masa�st� uygulamalar� geli�tirmek i�in ba�lang�� ama�l� olarak iyi bir se�enek. G�rd���m�z gibi olduk�a basit ve geli�tirme olduk�a h�zl�. Bir�ok g�nl�k uygulama i�in yeterli.

Ekran �st� yard�mlar� File/Open example men�s�ne k�yasla neredeyse tamam. project web adresini de ziyaret edebiliriz. Ba�lant�lar k�sm�nda ilgimizi �ekebilecek bir�ok proje bulabiliriz. Gelecek g�rebildi�im bir projenin sadece ba�lang�c�d�r bu.

 

Bu yaz� i�in g�r�� bildiriminde bulunabilirsiniz

Her yaz� kendi g�r�� bildirim sayfas�na sahiptir. Bu sayfaya yorumlar�n�z� yazabilir ve di�er okuyucular�n yorumlar�na bakabilirsiniz.
 talkback page 

<--, Bu say�n�n ana sayfas�na gider

G�rsely�re sayfalar�n�n bak�m�, LinuxFocus Edit�rleri taraf�ndan yap�lmaktad�r
© Jonás Alvarez, FDL
LinuxFocus.org
�eviri bilgisi:
es --> -- : Jonás Alvarez <jalvarez(at)eitb.com>
es --> en: Miguel Alfageme Sánchez, Samuel Landete Benavente. <mas20(at)tid.es>
en --> tr: �nan� �z�ubuk�u <inanco(at)atlas.net.tr>

2004-04-23, generated by lfparser version 2.43