Главная страница
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.01 c
3-101149
KidMan
2002-10-08 22:53
2002.10.31
BDE и инсталл шиилдс


3-101161
Igoryan
2002-10-11 12:39
2002.10.31
Копирование в буфер из DBGrid


1-101212
Slava V.
2002-10-21 15:56
2002.10.31
Как отловить события копирования в Clipboard?


3-101090
VIB
2002-10-09 10:06
2002.10.31
DBF без BDE


1-101288
Vladislav
2002-10-22 15:53
2002.10.31
ShellExecute(0, Open , mailto:lala@lala.ru?subject=Письмо&Att