Alternative: Man nehme ein Array mit Zahlen von 1 bis 40 und mischt diese - fertig sind die Zufallszahlen, die garantiert auch nur einmal vorkommen.
Schnell mal runtergetippt, wobei es jetzt kein Musterbeispiel darstellen soll:
Delphi-Quellcode:
SetLength(ZufallsZahlen, 40);
for i := Low(ZufallsZahlen) to High(ZufallsZahlen) do
Zufallszahlen[i] := i+1;
for i := Low(ZufallsZahlen) to High(ZufallsZahlen) do
begin
rnd := random(40);
t := Zufallszahlen[rnd];
Zufallszahlen[rnd] := Zufallszahlen[i];
Zufallszahlen[i] := t;
end;
Randomize besser ins FormCreate, wobei es auch fast keinen Unterschied machen sollte.
cu