Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 13.05.2009, 23:39   #1
Vladimir-belikov
Пользователь
 
Аватар для Vladimir-belikov
 
Регистрация: 13.05.2009
Сообщений: 14
Сообщение Помогите подшаманить...

надо написать програмку, кот. убирает по таймеру поочередно и рандомно 6 из 7-и элементов, после чего выводит сообщение или просто надпись, закрепленную за этим объектом. В общем то все работет Но! не могу догнать чего не хватает чтобы числа, выбранные рандомом не повоторялись.
вот код:

procedure TForm4.Timer1Timer(Sender: TObject);
var
i,n:integer;
begin
Randomize;
for i:=1 to 6 do
begin
n:=Random(7);
Case n of
1: begin Form4.Shape8.Visible:=False;
Form4.Label1.Caption:='1';
end;
2: begin Form4.Shape2.Visible:=False;
Form4.Label1.Caption:='2';
end;
3: begin Form4.Shape3.Visible:=False;
Form4.Label1.Caption:='3';
end;
4: begin Form4.Shape4.Visible:=False;
Form4.Label1.Caption:='4';
end;
5: begin Form4.Shape5.Visible:=False;
Form4.Label1.Caption:='5';
end;
6: begin Form4.Shape6.Visible:=False;
Form4.Label1.Caption:='6';
end;
7: begin Form4.Shape7.Visible:=False;
Form4.Label1.Caption:='7';
end;
end;
Form4.Label1.Visible:=True;
Form4.Timer1.Enabled:=False;
end;
Vladimir-belikov вне форума
Старый 13.05.2009, 23:55   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Но! не могу догнать чего не хватает чтобы числа, выбранные рандомом не повоторялись.
Код:
Randomize;
нужно вызывать только один раз (например, при показе формы).

В дополнение можно еще завести глобальный массив, куда помещать уже выпадавшие числа. И при генерации нового пробегаться по массиву (ну или через множество сделать) и если такое число уже было, то генерить заново.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц