Форум: "Начинающим";
Текущий архив: 2006.06.11;
Скачать: [xml.tar.bz2];
ВнизРадиоБатоны? Найти похожие ветки
← →
Hitkliff © (2006-05-22 15:52) [0]Как циклом сбросить выделение большого количества РадиоБатонов??????????
← →
Elen © (2006-05-22 16:10) [1]Угощайтесь, Сударь, Батончиком
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;
← →
Gydvin © (2006-05-22 16:42) [2]РадиоБатоны - это как ))))
← →
Elen © (2006-05-22 16:57) [3]
>РадиоБатоны - это как ))))
Наверное Батоны из Чернобыля
← →
Ega23 © (2006-05-22 17:00) [4]
> 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 - работать не будет.
← →
MBo © (2006-05-22 17:04) [5]>2. Eсли контролов > 255 - работать не будет.
А особенно чудесно, если их будет 0 ;)
>Hitkliff © (22.05.06 15:52)
>Как циклом сбросить выделение большого количества РадиоБатонов??????????
Radiobutton-ы вообще-то предназначены для выбора одного из множества вариантов, поэтому вопрос несколько странный...
← →
Ega23 © (2006-05-22 17:08) [6]
> А особенно чудесно, если их будет 0 ;)
А что тогда? В цикл-то не попадаем по условию...
← →
Cashmare © (2006-05-22 17:36) [7]Ega23 © (22.05.06 17:08) [6]
Range Check Error будет. Только зачем перебирать 0 контролов, да еще и на предмет радиобатонов. :)
← →
MBo © (2006-05-22 17:37) [8]>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;
← →
Ega23 © (2006-05-22 18:03) [9]
> Caption := IntToStr(CycleCount);
А-а-а, в этом плане...
Понял...
← →
Asail (2006-05-23 00:32) [10]
> А особенно чудесно, если их будет 0 ;)
Это как так? А Button1 - он что-же не контрол что-ли? Так-что, как минимум, один уж есть...
← →
Elen © (2006-05-23 07:39) [11]
> Это как так? А Button1 - он что-же не контрол что-ли? Так-что, как минимум, один уж есть...
Button1 имеет тип TButton, это не TRadioButton (он же Радио Батон)
Если я не ошибаюсь Радио батон при вкльчении выключает все другие Радио батоны в том контейнере в котором он находится, так что эта задача не имеет смысла
← →
Asail (2006-05-23 17:49) [12]
> Button1 имеет тип TButton, это не TRadioButton (он же Радио
> Батон)
Правильно, но в цикле, приведенном выше, проверка идет на кол-во ВСЕХ контролов на форме.
> Если я не ошибаюсь Радио батон при вкльчении выключает все
> другие Радио батоны в том контейнере в котором он находится,
> так что эта задача не имеет смысла
Полностью поддерживаю...
← →
GanibalLector © (2006-05-23 23:44) [13]>Полностью поддерживаю...
Аналогично.
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;
← →
Tonich © (2006-05-24 11:51) [14]а как по мне так проще пробежаться по компонентам на форме да и все.
но как было замечено еще в [5] посте, бред какой-то а не задача,
тохда уже чек-боксы а не радио.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.06.11;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.013 c