Burnumu sokmasam olmaz
@greenegitim yazdı:Buradaki amaç edt_islemturu combobox ında GELİR veya GİDER dışında bir şey yazılmaması gerekiyor.
ilk koda GELİR den VE GİDER den farklı ise ekrana hata yaz dedik
ikincide GELİR VE GİDER yazılmış ise bir şey yapma başka bir şey yazılı ise ekrana yaz mantıken ikisede aynı.
Sebep konusunda aydınlatmak için yazıyorum. Başlığı okuyanların kafası karışanlar vardır, sonuçları beraber trace edelim.
Sonuç alamadığımız sorgumuz :
Kod: Tümünü seç
if (edt_islemturu.Text<>'GELİR') or (edt_islemturu.Text<>'GİDER') then ShowMessage('OLMADI');
text'in içeriğine göre parantez içindeki (<>) (yani farklıdır) karşılaştırmasının döneceği TRUE veya FALSE olaylarını yazalım.
text = 'GELİR' olsun...
Kod: Tümünü seç
if ( FALSE ) or ( TRUE ) then ShowMessage('OLMADI');
text = 'GİDER' olsun...
Kod: Tümünü seç
if ( TRUE ) or ( FALSE ) then ShowMessage('OLMADI');
text = 'ARMAN' olsun...
Kod: Tümünü seç
if ( TRUE ) or ( TRUE ) then ShowMessage('OLMADI');
Sonuç : Her üçünde de en az 1 TRUE olacağından sürekli ShowMessage çalışması kaçınılmaz olduğundan sonuç alamamıştınız.
Buradaki koşullarda en rasyonel sonucu
@greenegitim zaten bulmuş
OR ile
<> (farklı) ifadesini beraber
kullanmaktan kaçınmak idi, zaten bunu da yapmışlar.
@xozcanx de parantez içine alarak aynı sorguyu tek bir bloğa indirgeyerek sadeleştirmişler.
Başarılar.