Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>NCURSES</strong> <strong>ile</strong> Yazılım Geli¸stirme <strong>NASIL</strong><br />
Kullanıcıyla etk<strong>ile</strong>¸simli pek çok yazılım ilklendirme sırasında noecho() i¸slevin ça˘gırır ve karakterlerin ekrana<br />
yansıtılması i¸slemini kontrollü bir ¸sekilde gerçekl¸stirir. Bu da programcıya o anki (y,x) koordinatlarını güncellemeden<br />
karakterlerin ekrana yansıtılması esnekli˘gini kazandırır.<br />
4.3. keypad()<br />
Bu benim en sevdi˘gim ilklendirme i¸slevim. F1, F2, ok tu¸sları, v.b gibi tu¸sların okunabilirli˘gini sa˘glar. Kullanıcı<br />
<strong>ile</strong> etk<strong>ile</strong>¸simli hemen her program ok tu¸slarının bir kullanıcı arayüzünde vazgeçilmez olmasından dolayı bunu<br />
etkinle¸stirmektedir. keypad(stdscr, TRUE) <strong>ile</strong> öntanımlı olarak atanmı¸s ekran için (stdscr) bu özelli˘gin<br />
etkin olmasını sa˘glayın. Klavye yönetimi hakkında daha fazla bilgiyi bu belgenin daha sonraki bölümlerinde<br />
ö˘greneceksiniz.<br />
4.4. halfdelay()<br />
Bu i¸slev çok sık kullanılmasa da, bazen oldukça yararlıdır. halfdelay(), cbreak() kipine benzer ¸sekilde<br />
basılan karakterlerin program için edin<strong>ile</strong>bilir olmasını sa˘glayan yarım–gecikme kipini etkinle¸stirir. Bununla beraber<br />
girdi için saniyenin ’X’ * 10 birimi kadar bekleyip herhangi bir giri¸s yapılmazsa ERR geri döndürür.<br />
’X’, halfdelay() i¸slevine gönder<strong>ile</strong>n zaman a¸sımı süresidir. Bu i¸slev kullanıcıdan bir girdi istedi˘giniz zaman<br />
kullanı¸slıdır, e˘ger belli zaman içerisinde bu giri¸s gerçeklemezse bir ¸seyler yapabiliriz. Muhtemel bir örnek<br />
olarak parola giri¸s ekranındaki zaman a¸sımı ver<strong>ile</strong>bilir.<br />
4.5. Muhtelif ˙Ilklendirme ˙I¸slevleri<br />
Curses davranı¸slarını ilklendirirken ça˘grılan bir kaç i¸slev daha vardır. Yukarıda belirt<strong>ile</strong>nler kadar yo˘gun ¸sekilde<br />
kullanılmazlar. Gerekli oldukları yerlerde bazıları açıklanmı¸stır.<br />
4.6. Bir Örnek<br />
Bu i¸slevlerin kullanımını açıklayacak bir program yazalım.<br />
Örnek 2. ˙Ilklendirme ˙I¸slevlerini Kullanım Örne ˘gi<br />
#include <br />
int main()<br />
{ int ch;<br />
initscr(); /* Curses kipine giri¸s */<br />
raw(); /* Satır önbelle˘gi etkisizle¸stirildi */<br />
keypad(stdscr, TRUE); /* F1, F2, v.b. etkin */<br />
noecho(); /* getch için karakterleri ekrana yansıtma */<br />
printw("Koyu görmek istedi˘giniz bir karakteri yazınız\n");<br />
ch = getch(); /* E˘ger raw() ça˘grılmamı¸s olsa *<br />
* karakterin programa gönderilmesi için *<br />
* enter’a basmamız gerekecekti */<br />
if(ch == KEY_F(1)) /* Klavye tu¸sları etkinle¸stirilmeden */<br />
printw("F1 tu¸suna basıldı"); /* bu de˘geri de alamayacaktık */<br />
/* noecho() olmadan *<br />
* bazı çirkin gözünü¸slü karakterler *<br />
* ekranda gözükebilir */<br />
else<br />
{ printw("Basılan tu¸s ");<br />
http://belgeler.org Linux Kitaplı˘gı 14 / 90