Ttabsheet.ComponentCount komutunun 0 Döndürmesi Hk.

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
barutali
Üye
Mesajlar: 297
Kayıt: 02 Tem 2007 02:30

Ttabsheet.ComponentCount komutunun 0 Döndürmesi Hk.

Mesaj gönderen barutali »

Herkese Merhabalar;

Sıkıntım yetkilendirme formum ile ilgili ilk başlar aşağıdaki kod bloğum çok güzel işimi görüyordu. Fakat yetkilendirme formu genişleyip bileşen sayısı çoğaldıkça.. Yavaşlık hatta kitlenmeler yaşanmaya başladı. Bende tüm formun Componenetcount değeri kadar değilde aktif sekmenin componenet count değeri kadar döngü kurayım dedim.. Fakat <Tpagecontrol>.ActivePage.componentcount komutu sürekli olarak 0 dönüyor.

mevcut kullandığım kod bloğu :

Kod: Tümünü seç

VAR
  i : integer;
begin
 try
    case (SENDER AS TbsSkinCheckRadioBox).Checked of
      True :
       begin
         for I := 0 to Self.ComponentCount - 1 do
         begin
           if (Self.Components[i].Tag = TAGI) and (Self.Components[i].ClassType = TbsSkinCheckRadioBox) then
           begin
             (Self.Components[i] as TbsSkinCheckRadioBox).Checked := True;
           end;
           Application.ProcessMessages;
         end;
       end;

       FALSE :
       Begin
         for I := 0 to Self.ComponentCount - 1 do
         begin
           if (Self.Components[i].Tag = TAGI) and (Self.Components[i].ClassType = TbsSkinCheckRadioBox) then
           begin
             (Self.Components[i] as TbsSkinCheckRadioBox).Checked := False;
           end;
           Application.ProcessMessages;
         end;
       End;
    end;
  except on E: Exception do
  Begin
    Exit;
  End;
 end;

Teşekkürler..
İyi Çalışmalar..
amatör küme programcı :D
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Re: Ttabsheet.ComponentCount komutunun 0 Döndürmesi Hk.

Mesaj gönderen vkamadan »

Merhaba , componentCount yerine ControlCount yada Controls.count kullanmalısınız.
Tabi "Components" koleksiyonu yerine Controls koleksiyonunu kullanmanız gerekir.
Volkan KAMADAN
www.polisoft.com.tr
Kullanıcı avatarı
barutali
Üye
Mesajlar: 297
Kayıt: 02 Tem 2007 02:30

Re: Ttabsheet.ComponentCount komutunun 0 Döndürmesi Hk.

Mesaj gönderen barutali »

ControsCount olarak istediğim şekilde sonuç veriyor. Fakat Checkbox larım Groupbox içinde olduğu için checkboxları doğal olarak yok sayıyor :) Checkbox ları groupbox dan çıkararak tam sonuca ulaşabilirim fakat şuan için mevcut durumu çözmek daha eğlenceli olacağından bu şekilde devam edicem.

Cevabını için teşekkür ederim @vkamadan hocam..

İyi Çalışmalar diliyorum.
amatör küme programcı :D
Kullanıcı avatarı
barutali
Üye
Mesajlar: 297
Kayıt: 02 Tem 2007 02:30

Re: Ttabsheet.ComponentCount komutunun 0 Döndürmesi Hk.

Mesaj gönderen barutali »

ControlsCount olarak istediğim şekilde sonuç veriyor. Fakat Checkbox larım Groupbox içinde olduğu için checkboxları doğal olarak yok sayıyor :) Checkbox ları groupbox dan çıkararak tam sonuca ulaşabilirim fakat şuan için mevcut durumu çözmek daha eğlenceli olacağından bu şekilde devam edicem.

Cevabını için teşekkür ederim @vkamadan hocam..

İyi Çalışmalar diliyorum.
amatör küme programcı :D
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Re: Ttabsheet.ComponentCount komutunun 0 Döndürmesi Hk.

Mesaj gönderen vkamadan »

ana döngünüz içinde Control ün TGroupBox olup olmadığını kontrol edip GroupBox ise ilgili bileşen için kendi içinde tekrar Controls koleksiyonu için döngü kurarak içindeki objelere ulaşabilirsiniz.

Kod: Tümünü seç

for i:=0 to self.Controls.Count-1 do
begin
 if  self.Controls[i] is TGroupBox then
begin  
 for k:=0 to TGroupBox(self.Controls[i]).Controls.Count-1 do
  begin
     //
  end;
end;
end;
gibi..
Volkan KAMADAN
www.polisoft.com.tr
Cevapla