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

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

РадиоБатоны?


Hitkliff ©   (2006-05-22 15:52:00) 

Как циклом сбросить выделение большого количества РадиоБатонов??????????


Tonich   (2006-05-24 11:51:00) [1]

а как по мне так проще пробежаться по компонентам на форме да и все.
но как было замечено еще в [5] посте, бред какой-то а не задача,
тохда уже чек-боксы а не радио.


GanibalLector   (2006-05-23 23:44:00) [2]

>Полностью поддерживаю...
Аналогично.


procedure TForm1.ExecClick(Sender: TObject);
 //
 procedure SetConrols(Obj:array of TObject);
   var I:Integer;
 begin
   for I:=0 to Length(Obj)-1 do
   begin
     if (Obj[I] is TRadioButton) then
     (Obj[I] as TRadioButton).Checked:=False;
   end;
 end;
 //
begin
 SetConrols([RadioButton1,RadioButton2,RadioButton3]);
end;


Asail   (2006-05-23 17:49:00) [3]


> Button1 имеет тип TButton,  это не TRadioButton (он же Радио
> Батон)

Правильно, но в цикле, приведенном выше, проверка идет на кол-во ВСЕХ контролов на форме.


> Если я не ошибаюсь Радио батон при вкльчении выключает все
> другие Радио батоны в том контейнере в котором он находится,
>  так что эта задача не имеет смысла

Полностью поддерживаю...


Elen   (2006-05-23 07:39:00) [4]


> Это как так? А Button1 - он что-же не контрол что-ли? Так-что, как минимум, один уж есть...

Button1 имеет тип TButton,  это не TRadioButton (он же Радио Батон)

Если я не ошибаюсь Радио батон при вкльчении выключает все другие Радио батоны в том контейнере в котором он находится, так что эта задача не имеет смысла


Asail   (2006-05-23 00:32:00) [5]


> А особенно чудесно, если их будет 0 ;)

Это как так? А Button1 - он что-же не контрол что-ли? Так-что, как минимум, один уж есть...


Ega23   (2006-05-22 18:03:00) [6]


>  Caption := IntToStr(CycleCount);


А-а-а, в этом плане...
Понял...


MBo   (2006-05-22 17:37:00) [7]

>Ega23 ©   (22.05.06 17:08) [6]
>А что тогда? В цикл-то не попадаем по условию...
Использование беззнаковой переменной в качестве счетчика цикла часто чревато боком:

procedure TForm1.Button2Click(Sender: TObject);
var
 b, Cnt: byte;
 CycleCount: Integer;
begin
 CycleCount := 0;
 Cnt := 0;
 for b := 0 to Cnt - 1 do
   Inc(CycleCount);
 Caption := IntToStr(CycleCount);
end;


Cashmare   (2006-05-22 17:36:00) [8]

Ega23 ©   (22.05.06 17:08) [6]

Range Check Error будет. Только зачем перебирать 0 контролов, да еще и на предмет радиобатонов. :)


Ega23   (2006-05-22 17:08:00) [9]


> А особенно чудесно, если их будет 0 ;)


А что тогда? В цикл-то не попадаем по условию...


MBo   (2006-05-22 17:04:00) [10]

>2. Eсли контролов > 255 - работать не будет.
А особенно чудесно, если их будет 0 ;)

>Hitkliff ©   (22.05.06 15:52)  
>Как циклом сбросить выделение большого количества РадиоБатонов??????????

Radiobutton-ы вообще-то предназначены для выбора одного из множества вариантов, поэтому вопрос несколько странный...


Ega23   (2006-05-22 17:00:00) [11]


> procedure TForm1.Button1Click(Sender: TObject);
> var i:byte;
> begin
> for  i:=0  to form1.ComponentCount-1   do
> begin
> if form1.Components[i] is  TRadioButton then TRadioButton(form1.
> Components[i]).Checked:=false;
> end;
>
> end;
>


1. Т.к. данный код идёт в рамках класса TForm1, form1 везде можно опустить. Тем более, что экземпляр объекта класса TForm1 может называться не только 'form1'.
2. Eсли контролов > 255 - работать не будет.


Elen   (2006-05-22 16:57:00) [12]


>РадиоБатоны - это как ))))

Наверное Батоны из Чернобыля


Gydvin   (2006-05-22 16:42:00) [13]

РадиоБатоны - это как ))))


Elen   (2006-05-22 16:10:00) [14]

Угощайтесь, Сударь, Батончиком

procedure TForm1.Button1Click(Sender: TObject);
var i:byte;
begin
for  i:=0  to form1.ComponentCount-1   do
begin
if form1.Components[i] is  TRadioButton then TRadioButton(form1.Components[i]).Checked:=false;
end;

end;


Наверх

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