В одной тестовой программе есть у меня массив из 70 объектов класса с таким конструктором:
- Код: Выделить всё
constructor TCustomPetal.Create(Xmax, Ymax: integer);
begin
inherited Create;
CX:=Random(Xmax);
CY:=Random(Ymax);
RColor:=1+Random($FFFFFFF0);
Scale := 2+Random(12);
end;
На форме таймер, период срабатывания - 100 миллисекунд, каждый раз создается один из 70 новых объектов (по кругу).
На платформе windows XP 32 все работает замечательно, но вот на платформе Ubuntu 15.04 x64 все работает странно. Сначала я визуально растерялся: программа создала пять первых объектов и будто зависла, потом секунд через 10 стерла старые и создала опять новых штук 5.
Выяснил, что функция Random в определенный момент начинает генерировать ОДНО и ТОЖЕ число, а с учетом периода таймера 100 мс - количество одинаково сгенерированных чисел просто абсурдное какое-то.
Как думаете, в чем загвоздка? (Randomize не предлагать, с нею сразу же начинает генерироваться одинаковое число бесконечно).