Вот такой код с массивом сравнивался
procedure THIRandom._work_doRandomWithoutRepeats;
var
i, j, rndidx, _max: integer;
IRnd: Array of integer;
begin
_max := Round(_prop_Max);
SetLength(IRnd, _max);
for i:= 0 to _max - 1 do
IRnd[i] := i;
for i:=0 to _max - 1 do
begin
j:= Round(Random *(_max - i) - 0.5 + i);
rndidx := IRnd[i];
IRnd[i] := IRnd[j];
FRnd := IRnd[j];
IRnd[j] := rndidx;
_hi_onEvent(_event_onRandom, Round(FRnd));
end;
SetLength(IRnd, 0);
end;
Леонид писал(а):
думаю, что "всё в одном" непонятнее всегдаАга, а засорять палитру компонентами из-за одного метода -- отличная идея
Кстати, Леонид, в твоем коде куча лишних телодвижений с округлением, которые там и в пень не упали. А у меня в коде посмотри, как реализуется динамический массив
------------ Дoбавленo в 22.32:
Внес исправления на SVN