runtime oluşturulan checkbox.

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
kamuran48
Üye
Mesajlar: 284
Kayıt: 29 Eyl 2003 09:27
Konum: muğla

runtime oluşturulan checkbox.

Mesaj gönderen kamuran48 »

selam arkadaşlar,
Öncelikle Ramazanınız mübarek olsun.Bir form üzerinde runtime oluşturduğum bir sürü checkbox var.bunlardan herhangi bir checked=true konumuna getirildiğinde onun captionunu nasıl alabilirim. birde runtime olarak button oluşturulabilirmi. aklımdayken önce arama yaptım. :D
iyi çalışmalar.
Kullanıcı avatarı
Lost Soul
Üye
Mesajlar: 1064
Kayıt: 01 Nis 2007 02:55
Konum: mekan ANKARA toprak ELAZIĞ
İletişim:

Mesaj gönderen Lost Soul »

Checkboxları create ederken onclick olayını tek bir procedurede topladıktan sonra

Kod: Tümünü seç

CheckBoxOnClick(Sender : Tobject);
begin
Showmessage(TCheckBox(Sender).Caption);

end;
eğer her bir nesneye görre davranışlar sergilemek istiyorsanız nesneleri create ederken her birine bir tag numarası vererek
ve

Kod: Tümünü seç

if TCheckBox(Sender).Tag = ??? then 
şeklinde seçime göre davranışşta bulunmasını sağlayabilirsiniz.

kolay gelsin.
deltas
Üye
Mesajlar: 358
Kayıt: 06 Mar 2004 01:08
Konum: Malatya...
İletişim:

Mesaj gönderen deltas »

kamuran hocam cevabım tam sorunuzu karşılamıyor. Ancak checkbox'ları VT'den bilgi çekerken kullanıyorsanız tavsiyem checklistbox kullanmanız olur. Eğer bilgileri paket (lab hizmetleri gibi) hazırlamada kullanıyorsanız bu çok işe yarıyor.
Nice İnsanlar gördüm üstünde elbise yok;
Nice elbiseler gördüm içinde insan yok.
kamuran48
Üye
Mesajlar: 284
Kayıt: 29 Eyl 2003 09:27
Konum: muğla

Mesaj gönderen kamuran48 »

Kod: Tümünü seç

var
  i:integer;
begin
for i:=0 to ComponentCount-1 do
begin
 if Components[i] is TCheckBox then
(Components[i] as TCheckBox).Checked;
end;
yukarıdaki kod ile daha önce runtime oluşturulan checkbox ları bulup işaretlemiyor.nedeni ne olabilir.
delphi2007 kullanıyorum.
deltas
Üye
Mesajlar: 358
Kayıt: 06 Mar 2004 01:08
Konum: Malatya...
İletişim:

Mesaj gönderen deltas »

hocam dediğim yöntem işinize yaramadı herhalde.

Kod: Tümünü seç

procedure TForm1.Button3Click(Sender: TObject);
var
  i:integer;
begin
for i:=0 to ComponentCount-1 do
begin

if Components[i] is tcheckbox then
(Components[i] as TCheckBox).Checked:=true;
end;

end;
bu işinizi görecekir. Ancak bunu yaparken runtimede oluşturduğunuz bileşeni owner parametresi self ile oluşturun . nil ile yaparsanız yine işlem yapmaz.

Kod: Tümünü seç

 checkboxdizi[i]:=TCheckBox.Create(self);
butonuda aynı şekilde yapabilirsiniz.

Kod: Tümünü seç

procedure TForm1.Button2Click(Sender: TObject);
var
buton: tbutton;
begin
               buton:=tbutton.Create(self);
               buton.Parent:=self;
               buton.Top:=100;
end;
Nice İnsanlar gördüm üstünde elbise yok;
Nice elbiseler gördüm içinde insan yok.
Kullanıcı avatarı
Lost Soul
Üye
Mesajlar: 1064
Kayıt: 01 Nis 2007 02:55
Konum: mekan ANKARA toprak ELAZIĞ
İletişim:

Mesaj gönderen Lost Soul »

kamuran48 yazdı:

Kod: Tümünü seç

var
  i:integer;
begin
for i:=0 to ComponentCount-1 do
begin
 if Components[i] is TCheckBox then
(Components[i] as TCheckBox).Checked;
end;
bloğunda if deyiminden sonra gelen satır hepsini check ettiği için öyle oluyor.
eğer check olaanlarrın capitonlarını almak istiyorsanız aşağıdaki gibi kodu değiştirmelisiniz.

Kod: Tümünü seç

var
  i:integer;
begin
for i:=0 to ComponentCount-1 do
begin
 if Components[i] is TCheckBox then
 if (Components[i] as TCheckBox).Checked then 
  .................gerekli işlem
end;
Cevapla