Groupbox İçindeki Checkboxlar???

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
R.K.
Üye
Mesajlar: 82
Kayıt: 02 Nis 2007 12:05
Konum: Adana

Groupbox İçindeki Checkboxlar???

Mesaj gönderen R.K. »

İyi çalışmalar arkadaşlar. Biraz uğraştım ve forumda arattım ama tam istediğimi bulamadım. Groupbox kontrolümün içinde adet Checkbox var. Ben bu groupbox kontrolümün içindeki kontrolleri aşağıdaki gibi bir kodla kontrol ediyorum ve eğer control checkbox ise ve basılı ise tag değerlerine atadığım değerleri toplamasını istiyorum. Aslında yapmak istediğim 4 adet checkbox'ın durumuna göre sorgumu değiştirmek ama takıldım. Her checkbox'ın basılı olduğunu teker teker nasıl kontrol edicem yapamadım. Eğer sizinde 4 adet checkboxın durumuna göre sorgumu nasıl değiştirebileceğime bir öneriniz varsa ona göre bişeyler yapmaya çalışıcam...

Kod: Tümünü seç

procedure TForm1.GroupBox1Click(Sender: TObject);
var i:byte;
chek:TCheckBox;
begin
  for i := 0 to GroupBox1.ControlCount-1 do
      if GroupBox1.Controls[i] is TCheckBox  then
        begin
                    ???????? işte buraya neyi ve nasıl yazmam gerekiyor??
        end;

end;
Cevaplarınız için teşekkürler...
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Re: Groupbox İçindeki Checkboxlar???

Mesaj gönderen conari »

Controls.checked then
checked kontrolü yaptıracaksınız.
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: Groupbox İçindeki Checkboxlar???

Mesaj gönderen aslangeri »

s.a.
peki hangi checkbox a karşılık sorguya hangi kriteri ekleyeceksin.?

Kod: Tümünü seç

 if GroupBox1.Controls[i] is TCheckBox  then
(GroupBox1.Controls[i] as TCheckBox).checked 
ile checkboxun checked ini kontrol edebilirsin ama bu 4 checkboxdan hangisi olduğunu nasıl anlayacaksın.
nasıl bir sorgu yapmaya çalıştığını söylersen belki ona göre bi düzenleme yapabiliriz.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
R.K.
Üye
Mesajlar: 82
Kayıt: 02 Nis 2007 12:05
Konum: Adana

Re: Groupbox İçindeki Checkboxlar???

Mesaj gönderen R.K. »

Cevapların için teşekkürler hocam. Yapmak istediğimi şu şekilde olacak.

Kod: Tümünü seç

Select * from işlem
bu tablodan sorguları çekiyorum.
1. Checkbox Rulman
2. Checkbox Sarım
3. Checkbox Temizlik
4. Checkbox Balans
Eğer
1. checkbox seçili ise

Kod: Tümünü seç

select * from işlem where rulman=true"
2. checkbox seçili ise

Kod: Tümünü seç

select * from işlem where sarım=true"
3. checkbox seçili ise

Kod: Tümünü seç

select * from işlem where temizlik=true"
4. checkbox seçili ise

Kod: Tümünü seç

select * from işlem where balans=true"
Eğer
1 ve 2 seçili ise

Kod: Tümünü seç

select * from işlem where rulman=true and sarım=true"
1,2,3 seçili ise

Kod: Tümünü seç

select * from işlem where rulman=true and sarım=true and temizlik=true"
yani tüm checkboxlar unchecked ise tüm kayıtlar, onun dışında da hangi checkboxlar işaretli ise ona göre yukarıdaki gibi sorgulama yaptırmak istiyorum. Aslangeri hocam bu olayı farklı bir şekilde çözmek istiyorum. Sizce yapmaya çalıştığım şey doğru olur mu, mantıklı mı? İzah edeyim.
Her ceheckbox'ın tag değerine bir sayı vericem1,2,4,8 gibi (binary basamaklar olarak veriyorum ki toplamları başka bir checkbox ile karışmasın). Checkboxlara her tıklama da checked durumda olan checkboxların tag değerlerini toplayacağım (1,2), sonucu bir procedure parametre olarak yollayıp bu değere göre sorgulama yaptırıcam. Yani parametre olarak 5 geldi o zaman şu kodlar çalışsın, 3 geldi şu kodlar. Yorumlarınızı bekliyorum hocam teşekkürler..
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: Groupbox İçindeki Checkboxlar???

Mesaj gönderen aslangeri »

bence checkboxların hint ine bağlı oldukları alanın adını yaz.
kodda da şöyle bir işlem yapabilirsin.

Kod: Tümünü seç

sql:='';
...
if GroupBox1.Controls[i] is TCheckBox  then
begin
if (GroupBox1.Controls[i] as TCheckBox).checked  then
  sql:=sql+' AND ('+(GroupBox1.Controls[i] as TCheckBox).hint+'=True)';
end;
oluşturduğun bu sql i de queryye ekle.
yalnız querynin where kısmına (1=1) derseniz "and" lerle ilgili bir kontrol yapmanıza gerek kalmaz.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
R.K.
Üye
Mesajlar: 82
Kayıt: 02 Nis 2007 12:05
Konum: Adana

Re: Groupbox İçindeki Checkboxlar???

Mesaj gönderen R.K. »

Hocam cevaplarınız için teşekkürler. Bu konuyla alakalı değil ama son verdiğiniz cevaptaki (1=1) neyi ifade ediyor ve kullanım amacı ve yerleri nelerdir. Forumda birkaç yerde daha geçti daha önce ama tam anlamadım. Birde arama ile (1=1) sonuçlarına ulaşamıyorum. Bu konuda sizin hatırladığınız link varsa forumdaki yazarsanız sevinirim. Kolay gelsin...
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: Groupbox İçindeki Checkboxlar???

Mesaj gönderen aslangeri »

(1=1) ifadesi sql sorgusunu oluştururken and leri kontrol ememek için.
onu kullanmaz isek her sorgudan önce sorgu stringinin boş olup olmadığını kontrol edip eğer boşsa direk sorgu yu(Rulman=true) yazmamız eğer boş değilsede and ekleyip yazmamız gerekecek ( and rulman=true) .
Bu kontrolu yapmamak için (1=1) koşulunu ekliyoruz. 1 herzaman 1 e eşit olacağı için bir problem teşkil etmiyor. bize sorgumuzu hazırlarken kolaylık sağladığı için kullanıyoruz.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Cevapla