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 />
new_field kütüphane yordamını hatırlayın; bir birim yüksekli˘ginde ve tek satırlık bir alan olu¸sturuluyordu. Bir<br />
birimden fazla yüksekli˘ge sahip alanlar çok satırlı alanlar olarak tanımlanacaklardır.<br />
O_STATIC özelli˘gi etkisizle¸stirilmi¸s tek satırlık bir alan tek bir sabit satır içerecektir, fakat sütun sayısı kullanıcının<br />
ilk alanın ta¸sıyab<strong>ile</strong>ce˘ginden fazlasını girmesi durumunda artabilir. Görüntülenen alan sayısı sabit kalacak ve<br />
ilave ver<strong>ile</strong>r kaydırılabilir olacaktır.<br />
Çok satırlı ve O_STATIC özelli˘gi etksizle¸strilmi¸s bir alan ise (çalı¸sma zamanında geni¸sleyeb<strong>ile</strong>n) sabit sayıda<br />
sütun içerecek, fakat satır sayısı alanın ilk tutab<strong>ile</strong>ce˘gi de˘gerden daha fazlası girilmesi durumunda artacaktır.<br />
Görüntülenen satır sayısı sabit olacak ve ilave ver<strong>ile</strong>r kaydırılabilir olacaktır.<br />
Yukarıdaki iki paragraf çalı¸sma zamanında geni¸sleyen alanların davranı¸s özellikleriyle ilgili oldukça açıklayıcıdır.<br />
Di˘ger form alanlarının davranı¸s özellikleri a¸sa˘gıda açıklanmı¸stır:<br />
1. O_AUTOSKIP seçene˘gi e˘ger O_STATIC etkisiz ve alan için tanımlanmı¸s azami büyüyebilme miktarı<br />
tanımlı de˘gilse gözardı ed<strong>ile</strong>cektir. ¸Su anda, kullanıcı alanın en sonuna gelip bir karakter yazdı˘gında<br />
O_AUTOSKIP otomatik ¸sekilde REQ_NEXT_FIELD form sürücüsü iste˘gini üretmektedir. En fazla<br />
büyüyebilme miktarı tanımlanmamı¸s geni¸sleyebilir bir alanda son karakter için bir konum yoktur. E˘ger<br />
en fazla geni¸sleme oranı tanımlanmı¸ssa, O_AUTOSKIP seçene˘gi e˘ger alan en büyük de˘gerine kadar<br />
geni¸slediyse normal çekilde çalı¸sacaktır.<br />
2. O_STATIC özelli˘gi e˘ger etkisizse alan içerisinde hizalama gözardı ed<strong>ile</strong>cektir. ¸Su anda,<br />
set_field_just tek satıra JUSTIFY_LEFT, JUSTIFY_RIGHT, JUSTIFY_CENTER özellikleri<br />
kazandırmak için kullanılabilir. Geni¸sleyebilir tek satırlık alan yatay olarak geni¸sleyip kaydırılabilir ve<br />
hizalanab<strong>ile</strong>n çok daha fazla veri içerebilir. field_just’ten geri dönen de˘ger de˘gi¸smemi¸s olacaktır.<br />
3. A¸sırı yüklenmi¸s form sürücü iste˘gi REQ_NEW_LINE, O_NL_OVERLOAD form seçene˘ginde O_STATIC<br />
de˘gerinin etkisiz olmasına ve alan için en fazla geni¸sleme miktarı tanımlanmamasına bakmaksızın aynı<br />
¸sekilde çalı¸sır. ¸Su anda e˘ger O_NL_OVERLOAD etkinse, REQ_NEW_LINE e˘ger alanın son satırında<br />
ça˘grılırsa gizli olarak REQ_NEXT_FIELD üretir. E˘ger bir alan sınırlara ba˘glı kalmadan geni¸sleyebiliyorsa,<br />
son bir satır yoktur, REQ_NEW_LINE hiç bir zaman gizli olarak REQ_NEXT_FIELD üretmez. E˘ger en<br />
fazla büyüme miktarı belirtilmi¸sse ve O_NL_OVERLOAD form özelli˘gi etkinse, e˘ger alan büyüyeb<strong>ile</strong>ce˘gi<br />
en büyük büyüklü˘ge gelmi¸s ve son satırda ise REQ_NEW_LINE sadece gizli olarak REQ_NEXT_FIELD<br />
üretecektir.<br />
4. dup_field ça˘grısı bilindi˘gi gibi çalı¸sır; alanı o anki önbellek boyunu ve alanın içeri˘gi <strong>ile</strong> ik<strong>ile</strong>¸stirecektir.<br />
Belirtilmi¸s en fazla büyüme miktarı da ik<strong>ile</strong>¸stir<strong>ile</strong>cektir.<br />
5. link_field bilindi˘gi gibi çalı¸sacaktır; O an ba˘glanan alan <strong>ile</strong> birlikte tüm alan özelliklerini ve payla¸sılan<br />
önbelle˘gi ik<strong>ile</strong>¸stirecektir. E˘ger O_STATIC alan seçene˘gi alanı payla¸sımlı önbellek tarafından ardı¸sıl olarak<br />
de˘gi¸stirilirse, önbelle˘gin sahip oldu˘gu veri miktarından fazlasının alana girilmesi durumunda nasıl davranı¸s<br />
gösterece˘gi o anki alanın özellik ayarına ba˘glıdır.<br />
6. field_info bilindi˘gi gibi çalı¸sacaktır; sat_say de˘gi¸skeni new_field’a yapılan asıl ça˘grının de˘gerini<br />
tutacaktır. Kullanıcı o anki önbellek boyutunu sorgulamak için dynamic_field_info’yu kullanmalıdır.<br />
Yukarıdak<strong>ile</strong>rin bazıları sadece form sürücüsünden sonra açıklanınca anlam kazanmaktadır. Sonraki bir kaç<br />
kısımda buna bakıyor olaca˘gız.<br />
18.4. Form Pencereleri<br />
Form penceresi mantı˘gı menü pencerelerinkine oldukça benzemektedir. Her bir form bir ana pencere ve alt<br />
pencere <strong>ile</strong> ili¸siklendirilir. Ana pencere ba¸slık, etiket, çerçeve veya kullanıcı her ne istiyorsa gösterir. Alt pencere<br />
http://belgeler.org Linux Kitaplı˘gı 77 / 90