içiçeif kullanımı sorunu
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
içiçeif kullanımı sorunu
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
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
Re: içiçeif kullanımı sorunu
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?
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?
Re: içiçeif kullanımı sorunu
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.
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.
Re: içiçeif kullanımı sorunu
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
İ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 !!!
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Re: içiçeif kullanımı sorunu
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,yadayazilmasi 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.
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
Kod: Tümünü seç
if not radiobutton.checked then
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
Re: içiçeif kullanımı sorunu
İ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
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';
Re: içiçeif kullanımı sorunu
Radiobutonları gruplamak için ikişerli olarak panel nesnelerinin içine koymuştum. Bunun daha pratik bir yolu var mıydı?