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.

}<br />

}<br />

}<br />

break;<br />

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

/* Formu ekrandan sil ve ayrılan bellek alanını geri ver */<br />

unpost_form(my_form);<br />

free_form(my_form);<br />

free_field(field[0]);<br />

free_field(field[1]);<br />

endwin();<br />

return 0;<br />

Yukarıdaki örnek oldukça açık ¸sekildedir. new_field() <strong>ile</strong> iki alan olu¸sturur. new_field() parametre olarak<br />

yükseklik, geni¸slik, y ba¸slangıç koordinatı, x ba¸slangıç koordinatı, ekranda gözükmeyen satır sayısı ve ilave<br />

çalı¸sma önbelle˘gi sayısını almaktadır. Be¸sinci parametre, ekranda gözükmeyen satır sayısı alanın ne kadarının<br />

gözükece˘gini belirtir. E˘ger sıfırsa, tüm alan gösterilir, aksi halde kullanıcı alanın görüntülenmeyen alanlarına<br />

ta¸stı˘gında form kaydırılabilir olacaktır. Form kütüphanesi kullanıcının girdi˘gi ver<strong>ile</strong>rin saklanması için her alan<br />

için bir önbellek tahsis eder. new_field()’in son parametresini kullanarak ilave ek bellekler tahsis etmesini<br />

sa˘glayabiliriz. ˙Istedi˘giniz herhangi bir amaç için kullanılabilir.<br />

Alanları olu¸sturduktan sonra, set_field_back() <strong>ile</strong> artalan özellikleri bir alt çizgi olarak ayarlanır.<br />

AUTOSKIP seçene˘gi field_opts_off() kullanılarak kapatılır. E˘ger bu özellik açıksa, odak e˘ger üzerinde<br />

i¸slem yapılan alan tamamen dolduysa bir sonraki alana kayacaktır.<br />

Alanlar forma ilint<strong>ile</strong>ndikten sonra ekrana yazılır. ˙I¸ste ¸su wh<strong>ile</strong> döngüsü içerisinde de kullanıcı gird<strong>ile</strong>ri<br />

form_driver’daki uygun kar¸sılıkları <strong>ile</strong> i¸slenir. form_driver()’a yapılacak olan isteklerin ayrıntıları daha<br />

sonra açıklanacaktır.<br />

18.3. Alanlar <strong>ile</strong> Oynamak<br />

Her bir form alanı birden fazla özellik <strong>ile</strong> ilint<strong>ile</strong>nmi¸stir. ˙Isten<strong>ile</strong>n özelli˘gi elde etmek ve e˘glenmek için<br />

de˘gi¸stir<strong>ile</strong>bilirler. Daha ne bekliyoruz?<br />

18.3.1. Alan Konumunun ve Boyutununun Alınması<br />

Alan olu¸sturulması sırasında verdi˘gimiz parametreler field_info() <strong>ile</strong> okunabilir. Kendisine ver<strong>ile</strong>n parametrelere<br />

yükseklik, geni¸slik, y ba¸slama koordinatı, x ba¸slama koordinatı, görünmeyen satır sayısı ve ilave önbellek<br />

miktarını geri döndürür. new_field() bu i¸slevin bir çe¸sit ters i¸slevidir.<br />

int i¸slev<br />

field_info (FIELD *alan, /* döndürülecek alan */<br />

int *yukseklik, /* alan yüksekli˘gi */<br />

int *genislik, /* alan geni¸sli˘gi */<br />

int *ust, /* üst kenar */<br />

int *sol, /* sol kenar */<br />

int *gorunmeyen, /* görünmeyen satır sayısı */<br />

int *tampon_boyu); /* tampon boyu */<br />

18.3.2. Alanı ta¸sımak<br />

Alanın konumu farklı bir konuma move_field() <strong>ile</strong> ta¸sınabilir.<br />

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

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

Saved successfully!

Ooh no, something went wrong!