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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>NCURSES</strong> <strong>ile</strong> Yazılım Geli¸stirme <strong>NASIL</strong><br />

TYPE_INTEGER de˘ger önbelle˘gi C kütüphanesindeki atoi(3) i¸slevi <strong>ile</strong> uygun ¸sekilde ifade ed<strong>ile</strong>bilir.<br />

TYPE_NUMERIC<br />

Bu alan türü 10 tabanında bir sayı kabul eder. ¸Su ¸sekilde ayarlanır:<br />

int i¸slev<br />

set_field_type (FIELD *alan, /* de˘gi¸stir<strong>ile</strong>cek alan */<br />

TYPE_NUMERIC, /* ili¸siklendir<strong>ile</strong>cek tür */<br />

int hassasiyet, /* noktadan sonraki hassasiyet */<br />

int vmin, /* geçerli aralık */<br />

int vmax); /* geçerli aralık */<br />

Geçerli karakterle önlerinde eksi i¸sareti de olab<strong>ile</strong>n sayılardır. Muhtemelen bir de ondalık belirteci bir nokta<br />

vardır. Menzil kontrolü çıkı¸sta kontrol edilir. E˘ger aralı˘gın en büyük de˘geri en küçük de˘gerden küçük veya<br />

ona e¸sitse aralık gözardı edilir.<br />

E˘ger de˘ger, aralık kontrolünü geçerse hassasiyet kısmındaki de˘gere göre uygun olarak sa˘g taraf sıfırlarla<br />

doldurulur.<br />

Bir TYPE_NUMERIC de˘geri C kütüphanesindeki atof(3) i¸slevi <strong>ile</strong> uygun ¸sekilde ifade ed<strong>ile</strong>bilir.<br />

TYPE_REGEXP<br />

Bu alan düzenli ifadeler ¸seklinde yazılmı¸s ver<strong>ile</strong>ri kabul eder. ¸Su ¸sekilde ayarlanır:<br />

int i¸slev<br />

set_field_type (FIELD *alan, /* de˘gi¸stir<strong>ile</strong>cek alan */<br />

TYPE_REGEXP, /* ili¸siklendir<strong>ile</strong>cek tür */<br />

char *duzifd); /* e¸sle¸secek ifade */<br />

Düzensiz ifade sözdizimi regcomp(3) i¸slevindeki <strong>ile</strong> aynıdır. Düzensiz ifadeyi kontrol etmek için kontrol,<br />

çıkı¸s anında gerçeklenir.<br />

18.6. form_driver: Form sisteminin dolap beygiri<br />

Menü sisteminde oldu˘gu gibi, form_driver() form sisteminde çok önemli bir rol oynamaktadır. Form sistemine<br />

yapılan tüm istekler form_driver()’dan süzülmek zorundadır.<br />

int i¸slev<br />

form_driver (FORM *form, /* de˘gi¸stir<strong>ile</strong>cek form */<br />

int istek); /* form istek kodu */<br />

Yukarıdaki örneklerin bazılarında da gördü˘günüz gibi, bir döngü kurup kullanıcıdan gelen istekleri kontrol edip<br />

bunun bir veri mi yoksa kullanıcı iste˘gi mi oldu˘guna karar vermeniz gerekir. Form istekleri daha sonra i¸slemi<br />

gerçeklemesi için form_driver()’a gönderilir.<br />

˙Istekler kabaca ¸su alt sınıflara ayrılabilir. De˘gi¸sik isteklerin kulanımları a¸sa˘gıda açıklanmı¸stır:<br />

18.6.1. Sayfada Gezinti ˙Istekleri<br />

Bu istekler form içerisinde sayfa bazında hareketlere sebep olur, form ekranının kayması sa˘glanır. Bir form pek<br />

çok sayfadan olu¸smu¸s olabilir. E˘ger çok sayıda alandan ve mantıksal bölümden olu¸smu¸s büyük bir formunuz<br />

varsa onu sayfalara bölebilirsiniz. set_new_page() belirt<strong>ile</strong>n alanda yeni bir sayfa olu¸sturur.<br />

http://belgeler.org Linux Kitaplı˘gı 82 / 90

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

Saved successfully!

Ooh no, something went wrong!