18.02.2013 Views

NCURSES ile Yazılım Geli¸stirme NASIL

NCURSES ile Yazılım Geli¸stirme NASIL

NCURSES ile Yazılım Geli¸stirme NASIL

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!