Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

RadioButtons as RadioGroup [D5, Win95/98]


Andrey V. ©   (2004-06-22 07:36:00) 

Как научить отдельные RadioButton на форме работать как элементы RadioGroup, т.е. в состоянии Checked должен быть только один RadioButton. Когда у меня на форме было N RadioButtonов все было хорошо. Но когда я поместил PageControl и раскидал RadioButtonы по страницам, все поломалось - при отмечании одного батона на одной странице, на других страницах появлялись по одному отмеченному RadioButtonу. Как красиво решить проблему ?


Andrey V.   (2004-06-22 14:44:00) [1]

> TUser ©   (22.06.04 12:49) [5]
Если часть RadioButtonов лежит на одном TabSheetе , а часть на другом , то это сработает только если под них подсунуть панели.

В любом случае спасибо вам и jack128.


TUser   (2004-06-22 12:49:00) [2]

2 2
Ну, извини
 for i:=1 to maxRB do begin
     LocalRB:=(FindComponent('RadioButton'+inttostr(i)) as TRadioButton);
     if LocalRB <> Sender then
        LocalRB.Checked:=c;  
     end;


Andrey V.   (2004-06-22 12:02:00) [3]

Положу на панели.
Придется в каждом клике делать Checked:=False для тех у кого Парент другой ...


jack128   (2004-06-22 11:34:00) [4]

размести все радиобаттоны одной группы как одном TGroupBox, или на панелях..


Andrey V.   (2004-06-22 11:26:00) [5]

При таком раскладе он НИКОГДА не будет Checked.


TUser   (2004-06-22 09:45:00) [6]

const
  maxRB = 10;

type
  TForm1 = class(TForm)
     RadioButton1:TRadioButton;
     RadioButton2:TRadioButton;
     ...
     RadioButton10:TRadioButton;
  ...

procedure TForm1.RadioButton1Click(Sender:TObject);
var i:integer;
   c:boolean;
begin
  c:=not (Sender as TRadioButton).Checked;
  for i:=1 to maxRB do
     (FindComponent('RadioButton'+inttostr(i)) as TRadioButton).Checked:=c;      
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо