Combobox if or kullanımı

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
greenegitim
Üye
Mesajlar: 713
Kayıt: 28 Nis 2011 10:33
Konum: İstanbul

Combobox if or kullanımı

Mesaj gönderen greenegitim »

Merhaba arkadaşlar bir dbcombobox ım var içerisinde (items) GELİR Ve GİDER item ları mevcut kullanıcı elle bir şey yazmasın sadece seçsin diye resimdeki
gibi bir kod kullanıyorum
kod

Kod: Tümünü seç

if (edt_islemturu.Text<>'GELİR') or (edt_islemturu.Text<>'GİDER') then ShowMessage('OLMADI');
Resim
anlamadığım F8 ile de control etiğimde gelen değer istediğim gibi ama yinede showmessage kısmına nasıl dallanıyor anlamadım.
Mücadele güzelleştirir!
Kullanıcı avatarı
G.Arkas
Üye
Mesajlar: 829
Kayıt: 01 Eki 2007 07:16
Konum: İstanbul
İletişim:

Re: Combobox if or kullanımı

Mesaj gönderen G.Arkas »

greenegitim yazdı: kullanıcı elle bir şey yazmasın sadece seçsin diye resimdeki
gibi bir kod kullanıyorum
Bunun yerine combobox Style özelliğini DropdownList yaparsanız kullanıcı sadece seçim yapabilir veri giremez. Bu arada yukarıda ki kodunuzda "or" yeri "and" kullanın.

iyi çalışmalar...
Resim
Kullanıcı avatarı
greenegitim
Üye
Mesajlar: 713
Kayıt: 28 Nis 2011 10:33
Konum: İstanbul

Re: Combobox if or kullanımı

Mesaj gönderen greenegitim »

işlem türü gelir veya gider olabilir and koyarsam hem gelir hem gider şartı sağlanması gerekmezmi
kodumu şu şekilde değiştirince düzeldi uykusuzluktanmı oruçtanmı anlamadım ne farkı varsa kodun
ilk denediğim kod (istediğim gibi çalışmayan)

Kod: Tümünü seç

if (edt_islemturu.Text<>'GELİR') or (edt_islemturu.Text<>'GİDER') then ShowMessage('OLMADI');
istediğim gibi çalışan

Kod: Tümünü seç

  if (edt_islemturu.Text='GELİR') or (edt_islemturu.Text='GİDER') then
      else
      begin
      ShowMessage('İşlem Türüne GELİR - GİDER Dışında Farklı Bir İşlem Yazamazsınız');
      Abort;
      end;
Mücadele güzelleştirir!
Kullanıcı avatarı
G.Arkas
Üye
Mesajlar: 829
Kayıt: 01 Eki 2007 07:16
Konum: İstanbul
İletişim:

Re: Combobox if or kullanımı

Mesaj gönderen G.Arkas »

ilk kodda kıstas olarak <> eşit değilse demişsiniz. Yeni kodda ise "=" eşitse demişsiniz. Ne işleminin yapıldığını bilmiyorum ama problem buradan kaynaklı sanırım.
Resim
Kullanıcı avatarı
m_ekici
Kıdemli Üye
Mesajlar: 563
Kayıt: 11 Haz 2003 06:49
Konum: Adana
İletişim:

Re: Combobox if or kullanımı

Mesaj gönderen m_ekici »

G.Arkas 'ın yazdığını dikkate almanı tavsiye ederim.
Kullanıcı avatarı
greenegitim
Üye
Mesajlar: 713
Kayıt: 28 Nis 2011 10:33
Konum: İstanbul

Re: Combobox if or kullanımı

Mesaj gönderen greenegitim »

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ı.
Mücadele güzelleştirir!
Kullanıcı avatarı
xozcanx
Üye
Mesajlar: 362
Kayıt: 05 Oca 2012 12:55

Re: Combobox if or kullanımı

Mesaj gönderen xozcanx »

Merhaba;
Çözüm bulmuşsunuz ama şu şekilde de kullanım yapabilirsiniz..

Kod: Tümünü seç

if not ((edt_islemturu.Text='GELİR') or (edt_islemturu.Text='GİDER')) then ShowMessage('OLMADI');
İyi Çalışmalar.
Nasibinde varsa, alırsın karıncadan bile ders, Nasibinde yoksa, bütün cihan önüne serilse, sana ters..
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Combobox if or kullanımı

Mesaj gönderen mrmarman »

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.
Resim
Resim ....Resim
Kullanıcı avatarı
greenegitim
Üye
Mesajlar: 713
Kayıt: 28 Nis 2011 10:33
Konum: İstanbul

Re: Combobox if or kullanımı

Mesaj gönderen greenegitim »

mrmarman yazdı: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.
Elinize sağlık hocam :bravo:
Mücadele güzelleştirir!
Cevapla