Форум: "Основная";
Текущий архив: 2002.10.31;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c