امروز تو یکی از برنامه ها که داشتم مینوشتم نیاز به تولید اعداد تصادفی ( Random ) غیر تکراری داشتم و تابع زیر رو برای این کار نوشتم :
procedure GenerateRandomList(var NumberList: TStringList; const NumberOfRandomGenerated, RandomRange: Integer);
begin
if RandomRange < NumberOfRandomGenerated then
raise Exception.Create('Random range must be equal or greater than number of random generated !');
NumberList.Duplicates := dupIgnore;
NumberList.Sorted := True;
RandSeed := MilliSecondOf(Now);
repeat
NumberList.Add(IntToStr(Random(RandomRange)));
until (NumberList.Count = NumberOfRandomGenerated);
end;
این هم نمونه استفاده :
var
RandomList: TStringList;
begin
RandomList := TStringList.Create;
try
GenerateRandomList(RandomList, 10000, 20000);
ListBox1.Items.Assign(RandomList);
finally
RandomList.Free;
end;
end;