Biri hariç diğerleri

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
aliyonca
Üye
Mesajlar: 34
Kayıt: 06 Ara 2004 04:57
Konum: GEBZE/KOCAELİ

Biri hariç diğerleri

Mesaj gönderen aliyonca »

Merhaba...

Benim bir problemim var, aslında pek problem denemez :).

formumda bir adet "groupbox" var ve "OnExit" olayı gerçekleşince "groupbox" içindeki elemanların hepsini "enabled:=False" yapıyorum, "groupbox" ın içinde az sayıda eleman olduğundan bu benim için problem değil fakat; "OnEnter" olayı içinde tam tersini yapmak istiyorum yani "groupbox" dışındaki bütün elemanları "enabled:=False" yapmak istiyorum. işte problemim burda çünkü "groupbox" dışında çok sayıda eleman var. bu yapmak istediklerimi bütün formlara için yazmaya kalkarsam epey uğraşırım. :)

Sanırım derdimi anlatabildim.

yani "groupbox" ın içine öyle bir kod yazmalıyım ki diğer elemanların hepsi "disable" olsun...

herkese çok teşekkür ederim...
www.DelphiTurkiye.com u Çok Seviyorum :)
Misafir

Mesaj gönderen Misafir »

merhaba.
groupbox içindeki elemanlar zaten groupboxun enabled değerini alırlar, çünkü parenti odur..ayrıca kod yazmaya gerek kalmaz..ancak farklı durumlar için bir istisna yazmak isterseniz componentcount ve components[id] olarak :ara rsanız yapmak istediğiniz şeyle ilgili yeterli örneğe ulaşabilirsiniz..

bir de başlığınız daha açıklayıcı olabilirse tadından yenmez :)

kolay gelsin.
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

Action'ları kullanın. bkz. Delphi Demos Actions
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Merhaba...

- Bu GroupBox'un name (bileşen adı) GroupBox1 olsun...

- Dahil olduğu form içerisindeki mevcut component sayısı ise TForm.ComponentCount verir... GroupBox'un içindeki elemanların Parent'i ise bu GroupBox'u verir.

- Şimdi elimizdeki bu veriler doğrultusunda OnEnter eventinde bir döngü ile Parenti GroupBox1 olanlar hariç diğer tüm bileşenlerin enabled özelliğini false yapabiliriz... :wink:

- Yeni sorun şu olacaktır, OnExit eventine de bunun tersini yazabilmen için Enabled özelliği kapatılmamış Focus olabilecek en az 1 nesnen olması lazım... :)

Kod: Tümünü seç

procedure TForm1.GroupBox1Enter(Sender: TObject);
Var
  Sayac : Integer;
begin
  For Sayac := 0 to Form1.ComponentCount-1
   do begin
        If (Form1.Components[Sayac] is TEdit)   AND (TEdit(Form1.Components[Sayac]).Parent <> GroupBox1)   then TEdit(Form1.Components[Sayac]).Enabled   := False;
        If (Form1.Components[Sayac] is TButton) AND (TButton(Form1.Components[Sayac]).Parent <> GroupBox1) then TButton(Form1.Components[Sayac]).Enabled := False;
        // Kapatacağın tüm nesne tipleri için o nesneyi de eklersin... 
        // Bu örnek Sadece Button ve Editleri kapsıyor..
      end;
end;
Resim
Resim ....Resim
Cevapla