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