Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.10.31;
Скачать: CL | DM;

Вниз

Random Как сделать?   Найти похожие ветки 

 
Inan61   (2002-10-18 22:20) [0]

На форме имеется 30 панелей, имитирующих экз.билеты. Необходимо по нажатию на кнопку пронумеровать их от 1 до 30 случайным образом. Как сделать?
Помогите, если можете. Заранее спасибо.


 
TTCustomDelphiMaster ©   (2002-10-18 22:40) [1]

http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1034946854&n=3


 
Inan61   (2002-10-18 23:35) [2]

А нельзя ли обойтись без массивов и флагов? Есть пример, но в нём при присвоении номеров они повторяются. Как его модернизировать?
procedure TForm1.Button1Click(Sender: TObject);
var i: Integer;
begin
Randomize;
for i:=0 to ComponentCount-1 do
begin
if (Components[i] is TPanel) then
(Components[i] as TPanel).Caption:=IntToStr(Random(29)+1);
end;
end;


 
Pat ©   (2002-10-19 00:52) [3]

>Как его модернизировать?
С помощью массивов и флагов :-))
Можно добавлять в StringList и при генерации следующего числа проверять IndexOf()


 
k   (2002-10-19 02:29) [4]

мне пришла идея (дурацкая - знаю)
только одно условие
ведь у TPanel есть св-во tag? задействуем его...
короче назначаем

//и зачем ты все компоненты перебираешь?
//чего бы массив не сделать?
const PanelCount = 30;
FPanels:array[1..PanelCount] of TPanel;
//создаешь их, размещаешь, св-ву Parent := self;

for i:=1 to PanelCount do FPanels.Tag:=i;
//пронумеровали их по порядку

теперь перетасуем их (точнее их теги)

var n1,n2:integer;
temptag:TPanel;
for i:=1 to 1000 do
begin
n1 := Random(30)+1; ан-но n2
temptag := Panels[n1].tag;
Panels[n1].tag := Panels[n2].tag;
Panels[n2].tag := TempTag;
end;

теперь номер тэга можно и в название вывести...
такова идея...



Страницы: 1 вся ветка

Текущий архив: 2002.10.31;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.017 c
4-101573
ai
2002-09-16 07:53
2002.10.31
Как определить размер пошаренного файла в памяти ...


14-101434
Jackson
2002-10-08 21:50
2002.10.31
Два вопроса


6-101432
Kotik
2002-08-27 01:51
2002.10.31
Как узнать стоит ли на компе какой нибудь FireWall?


3-101102
tanuha
2002-10-08 11:24
2002.10.31
Delphi, MySQL и блокировка данных


8-101381
Ptushenko Denis
2002-07-06 13:56
2002.10.31
Подскажите как определить скока минут длится песня ?