Форум: "Основная";
Текущий архив: 2003.10.20;
Скачать: [xml.tar.bz2];
ВнизПроблемы с компонентом RadioGroup Найти похожие ветки
← →
Soi (2003-10-08 06:03) [0]Помогите пожалуйста. У меня на форме есть 50 компонет RadioGroup свойство VISIBLE у всех стоит FALSE, как сделать так, чтобы, например по нажатию какой-нибудь кнопки эти компоненты отображались в случайном порядке.
← →
Кщд (2003-10-08 06:19) [1]конкретика?
← →
Нурик (2003-10-08 06:57) [2]Короче делаем так, этим RadioGroup"ам даешь имена RG1,RG2,RG3...RG50. Потом при нажатии какой-нибудь кнопки используешь функцию Random(50). Её значение переводишь в string и приплюсуешь к string "RG", то есть если полученное значение например 27, то будет "RG"+"27"="RG27"; А потом делаешь так:
TRadioGroup(FindComponent("RG27")).Visible:=true; Всё! Надеюсь понятно, если нет то пиши как нибудь постараюсь по проще объяснить.
← →
Спрашивающий_ (2003-10-08 07:10) [3]Пока набрасывал уже ответили,идея та же, только можно через Tag
см ниже
procedure TForm1.Button2Click(Sender: TObject);
var
I:Byte;
begin
I:=Random(50);
VisRG(I);
Memo1.Lines.Add(IntToStr(I));//Тест
end;
procedure TForm1.VisRG(Val:Integer);
var
I:Word;
begin
For I:=0 To Form1.ComponentCount-1 Do
If (Form1.Components[I] is TRadioGroup) Then If TRadioGroup(Form1.Components[I]).Tag=Val
Then TRadioGroup(Form1.Components[I]).Visible:=True Else TRadioGroup(Form1.Components[I]).Visible:=False;
end;
Не забудь присвоить каждому RG Tag от 0 до 50.
← →
Спрашивающий_ (2003-10-08 07:45) [4]Да но учти что при каждом новом запуске последовательность генерируемая Random буде одинакова, поэтому можешь сделать например так
procedure TForm1.Button2Click(Sender: TObject);
var
I:Byte;
S:String;
begin
S:=IntToStr(GetTickCount);
I:=StrToInt(S[Length(S)]);
If I=0 Then I:=1;
I:=Random(I);
If (I=0) or (I>3) Then I:=3 Else I:= Random(3) div I;
VisRG(I);
end;
Это для примера для 3 RG.
вероятность повторения снижается
Тест генерации
3 3
3 3
0 0
2 2
0 3
0 3
3 0
0 3
3 0
3 3
3 3
0 2
3 2
2 3
3 1
3 3
3 0
0 1
0 3
0 3
0 3
0 0
3 3
3 1
3 0
0 2
3 3
3 3
3 3
0 3
0 3
3 0
3 0
3 0
0 3
3 2
3 3
3 3
3 3
0 3
2 3
3 0
3 3
1 0
3 0
0 3
3 3
0 3
3 3
3 3
3 3
3 3
0 3
3 0
3 3
0 2
1 2
3 3
3 0
0 3
3 3
3 0
1 3
0 0
0 0
1 0
3 3
3 0
3 3
1 2
0 3
3 3
3 3
3 3
3 3
3 3
3 3
3 0
3 3
0 1
2 1
0 3
3 3
3 3
3 3
3 3
3 3
1 3
3 3
3 3
3 0
0 0
2 1
0 0
0 0
0 1
3 3
0 2
1 0
3 2
3 3
Как видно совпадения не велики, а в предыдущем примере
столбцы будут одинаковы.
← →
ЮЮ (2003-10-08 09:06) [5]>Да но учти что при каждом новом запуске последовательность генерируемая Random буде одинакова, поэтому
существует ещё и Randomize
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.10.20;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c