25 Aralık 2009 Cuma

Birden fazla mantıksal ifadenin sadece bir tanesinin doğru olmasının aranması

Elimizde birden fazla mantıksal değer var ve biz sadece bir tanesinin doğru olması şartını arıyoruz. f_1true fonksiyonu array olarak gönderilen mantıksal fonksiyonların sadece bir tanesi doğru, diğerleri yanlış ise doğru (true), diğer durumlarda yanlış (false) gönderir. Array olmayan değişkenleri bu fonksiyon ile kontrol etmek için {} içinde gönderin.
Örnek: cbx_1, cbx_2, cbx_3, cbx_4 checkbox'ların sadece bir tansesinin işaretli olmasını kontrol etmek istiyoruz:

boolean lb_deger
lb_deger = f_1true({cbx_1.checked, cbx_2.checked, cbx_3.checked, cbx_4.checked})

şeklinde kontrol edebiliriz.

f_1true fonksiyonu:
===================

$PBExportHeader$f_1true.srf
global type f_1true from function_object
end type

forward prototypes
global function boolean f_1true (boolean a_arg[])
end prototypes

global function boolean f_1true (boolean a_arg[]);
int li_sira
boolean lb_deger = false
for li_sira = 1 to upperbound(a_arg)
if lb_deger and a_arg[li_sira] then return false
lb_deger = a_arg[li_sira] or lb_deger
next
return lb_deger
end function

Hiç yorum yok:

Yorum Gönder