Hangi radiobutton seçili

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
lom
Üye
Mesajlar: 135
Kayıt: 25 Nis 2006 02:37

Hangi radiobutton seçili

Mesaj gönderen lom »

Merhabalar arkadaşlar. GroupBox içinde 25 tane radio butonum var. Bunların içinden hangisinin seçili olduğu kısa bişekilde nasıl yapabilirim ? Teşekkürler kolay gelsin
bgoktas
Kıdemli Üye
Mesajlar: 769
Kayıt: 27 Nis 2004 10:32
Konum: istanbul

Mesaj gönderen bgoktas »

Group box yerine radiogroup kullanın. :ara RadioGroup
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Mesaj gönderen sabanakman »

İlla grup içindekini bulmak istersen bunu bir fonksiyonla halledebilirsin.

Kod: Tümünü seç

function GruptaSeciliRadio(const Grup:TWinControl):TRadioButton;
var i:Integer;
begin
  for i:=0 to Grup.ControlCount-1 do begin
    if Grup.Controls[i] is TRadioButton then begin
      Result:=TRadioButton(Grup.Controls[i]);
      if Result.Checked then Exit;
    end;
  end;
  Result:=nil;
end;
Gibi bir fonksiyonu kullanabilirsin. Örnek kullanımı ise

Kod: Tümünü seç

var rb:TRadioButton
begin
.
.
.
  rb:=GruptaSeciliRadio(GroupBox1);
  if Assigned(rb) then ShowMessage(rb.Name);
.
.
end;
şeklinde olabilir.

Düzeltme:Bu fonksiyona parametre olarak TGroupBox verildiği gibi TPanel, TScroolBox, TForm gibi nesnelerde verilebilir. Sebebi tüm bu sınıfların TWinControl sınıfından türemiş olmasıdır. İyi çalışmalar.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Kullanıcı avatarı
lom
Üye
Mesajlar: 135
Kayıt: 25 Nis 2006 02:37

Mesaj gönderen lom »

Hocam ilginize tşk ederim. RadioGrup'a çevirdim. Ancak onu da beceremedim :(

Kod: Tümünü seç

for i := 0  to 25 do
begin
 if RadioGroup1.ItemIndex[i].Checked  then
 showmessage(inttostr(i));
 break;
end;
şeklinde yapmaya çalıştım ama olmadı. Bu kod üzerinde yardımcı olabilirmisiniz ? Teşekkürler
Kullanıcı avatarı
lom
Üye
Mesajlar: 135
Kayıt: 25 Nis 2006 02:37

Mesaj gönderen lom »

Kod: Tümünü seç

for i := 0  to 25 do 
begin 
 if RadioGroup1.ItemIndex[i].Checked  then 
 showmessage(inttostr(i+1)); 
end;
Bu şekilde çözdüm arkadaşlar saolasın tekrar...
bgoktas
Kıdemli Üye
Mesajlar: 769
Kayıt: 27 Nis 2004 10:32
Konum: istanbul

Mesaj gönderen bgoktas »

Kod: Tümünü seç

radiobutton1.itemindex
direk check = true olanı verir
Jire
Üye
Mesajlar: 167
Kayıt: 07 Eki 2007 01:20

Mesaj gönderen Jire »

Bence GroupBox yerine RadioBox açabilirsin ardından onun için bir variable açarsın sonra ItemIndex procedure ile hangisinin seçili olduğunu bulursun

procedure BtnClick;
var
sayi : integer;
begin
sayi := RadioBox1.ItemIndex;
ShowMessage(IntToStr(Sayi) + 'Numaralı kutu seçilmiştir');
end;
Cevapla