Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
14-65604
Denius
2003-09-29 17:49
2003.10.20
Расскажите про классы форм, пжалста!!!


1-65494
chs2r
2003-10-06 17:43
2003.10.20
Run-time


1-65522
nester
2003-10-07 22:21
2003.10.20
Как уникально идентифицировать компьютер?


1-65424
Mclaren
2003-10-07 14:20
2003.10.20
Как настроить внешний вид стандартного компонента ?


3-65317
Vick
2003-09-30 13:21
2003.10.20
Программа в процессе работы пожирает всю память!!!!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский