içiçeif kullanımı sorunu

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
delficim
Üye
Mesajlar: 9
Kayıt: 02 Şub 2014 03:37

içiçeif kullanımı sorunu

Mesaj gönderen delficim »

Selamlar delphi türkiye sitesinde emeği geçen arkadaşlara çok teşekkür ediyorum. bir çok sorumun cevabını burada ve benzer platformlarda bulabiliyorum. temelim zayıf olduğu için bazı konulara vakıf olmak çok zorlaşabiliyor. yinede kendimce bir şeyler yapıyorum. bir projemde sorunla karşılaştım. yardımcı olabileceklere şimdiden teşekkürler.

if RadioButton1.CHECKED=TRUE and RadioButton2.CHECKED=TRUE and RadioButton3.CHECKED=TRUE then
edit5.text:='_fatura.docx';
if RadioButton4.CHECKED=TRUE and RadioButton5.CHECKED=TRUE RadioButton6.CHECKED=TRUE then
edit5.text:='_rapor.docx';
if RadioButton7.CHECKED=TRUE and RadioButton8.CHECKED=TRUE RadioButton9.CHECKED=TRUE then
edit5.text:='_sunum.docx';

şeklinde içiçe if then yapısı kullandığımda istediğim sonucu alamıyorum.
çoklu şart kullanmam gerektiğinden case kullanamıyorum yada olur mu bilmiyorum
ertank
Kıdemli Üye
Mesajlar: 1657
Kayıt: 12 Eyl 2015 12:45

Re: içiçeif kullanımı sorunu

Mesaj gönderen ertank »

Merhaba,

Paylaştığınız kod ile ilgili bir sorun göremedim. İç içe if kullanımı da yok burada. Kontrol edilen noktalar farklı olduğu için iç içe olması gerekmiyor zaten.

Sorununuzun ne olduğunu biraz daha iyi açıklamanızda fayda var. İstediğiniz sonuç nedir?
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7588
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Re: içiçeif kullanımı sorunu

Mesaj gönderen mussimsek »

Selam,

Sanırım and yerine or kullansanız sıkıntınız çözülür gibi. Kod hatasından çok mantık hatası olabilir:

and ile bağlanan tüm şartlar sağlanmalı, yani 3 radiobutton'da seçilmeli.

or ile bağlanan şartlardan, sadece bir tanesi doğru olsa yeterli. Yani 3 radiobutton'dan bir tanesini seçseniz yeter.

Kolay gelsin.
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2357
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Re: içiçeif kullanımı sorunu

Mesaj gönderen freeman35 »

Bence yazım hatan yok, kurgu hatan var. RadioButton lar gruplanmış mı? öyleyse, ilk üç RadioButton aynı grupta ise, üçünün de seçilme ihtimali yok bu yüzdende o "if" in sonucu hep False tır, yani ELSE çalışır.
İlk if bloğu diyelim ki True, yani Then çalıştı. Altındaki if bloğu çalıştığında ve oda True dönerse, önceki(lerin) manası kalmaz. "edit5.text:='... son atanan geçerlidir.
eğer ilk blok doğru ise diğerleri çalışmayacaksa, sonraki if blokları, ilk if bloğunun ELSE ine eklenir.
kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
ikra
Üye
Mesajlar: 900
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Re: içiçeif kullanımı sorunu

Mesaj gönderen ikra »

Ayni Parent üzerinde olan Radiobutton'lar birden fazla check edilemezler. Bunun icin CheckBox kullanmaniz gerekir.
Yada Mustafa hocamin dedigi gibi, AND yerine OR kullanmaniz gerekir.

konuyla direkt alakasi olmasa da, true yada false kullanmak yerine,

Kod: Tümünü seç

if radiobutton.checked then
yada

Kod: Tümünü seç

if not radiobutton.checked then
yazilmasi daha mantikli.

ikinci husus ise, radiobutton ide'nin otomatik verdigi default isim dir. Bunlara uygun sekilde isimler verilmesi kod takibi icin kolaylik saglayacaktir.

Bunun haricinde, kodlar TAG icine alinirsa hem konuya cevap vermek daha zevkli olacaktir, hem de arama motorlarinin indexlemesi ve böyle bir problemi olan diger kisilerin cevaba kolayca ulasmalarini saglayacaktir.
kıdemsiz üye
delficim
Üye
Mesajlar: 9
Kayıt: 02 Şub 2014 03:37

Re: içiçeif kullanımı sorunu

Mesaj gönderen delficim »

İkra mesajındaki gibi =true kısımlarını kaldırınca dönen sonuçlar düzeldi. Emin olmak için tekrar true ekledim dönüşler hatalıydı. Şu an sorunum çözüldü.Herkese çok teşekkürler.


RadioButtonRAPOR-RadioButtonFATURA ikili grup
RadioButtonSARI-RadioButtonMAVI ikili grup
RadioButtonKARA-RadioButtonMAT ikili grup

Kod: Tümünü seç

if RadioButtonRAPOR.CHECKED and RadioButtonSARI.CHECKED   and RadioButtonKARA.CHECKED  then
edit5.text:='DURUM1'  ;

if RadioButtonRAPOR.CHECKED   and RadioButtonSARI.CHECKED   and RadioButtonMAT.CHECKED  then
edit5.text:='DURUM2  ;

if RadioButtonFATURA.CHECKED and RadioButtonSARI.CHECKED and  RadioButtonMAT.CHECKED  then
edit5.text:='DURUM3' ;

if RadioButtonFATURA.CHECKED  and RadioButtonSARI.CHECKED  and  RadioButtonKARA.CHECKED  then
edit5.text:='DURUM4';

if RadioButtonRAPOR.CHECKED and RadioButtonMAVI.CHECKED   and RadioButtonKARA.CHECKED  then
edit5.text:='DURUM5'  ;

if RadioButtonRAPOR.CHECKED   and RadioButtonMAVI.CHECKED   and RadioButtonMAT.CHECKED  then
edit5.text:='DURUM6'  ;

if RadioButtonFATURA.CHECKED and RadioButtonMAVI.CHECKED and  RadioButtonMAT.CHECKED  then
edit5.text:='DURUM7' ;

if RadioButtonFATURA.CHECKED  and RadioButtonMAVI.CHECKED  and  RadioButtonKARA.CHECKED  then
edit5.text:='DURUM8';
delficim
Üye
Mesajlar: 9
Kayıt: 02 Şub 2014 03:37

Re: içiçeif kullanımı sorunu

Mesaj gönderen delficim »

Radiobutonları gruplamak için ikişerli olarak panel nesnelerinin içine koymuştum. Bunun daha pratik bir yolu var mıydı?
ikra
Üye
Mesajlar: 900
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Re: içiçeif kullanımı sorunu

Mesaj gönderen ikra »

TRadioGroup nesnesi bicilmis kaftan.
kıdemsiz üye
Cevapla