-
Randomize komutu, bir kere verilir ve Delphi için rastgele sayı üretme fonksiyonunu hazır konuma getirir.
-
Random( rakam ); komutu ise
0 ile rakam arasında rastgele sayı üretir. Yani
0'a eşit veya büyük olurken dikkat et,
rakam hariç bir sayı üretilir. Yani
0 <= üretilensayı < Rakam
- Aşağıdaki örnek senin için Memo1'in satır sayısı kadar rastgele rakam üretir. Yukardaki dikkatini çektiğim unsur burada işimize yarayacak. Çünkü TMemo satır numarası
0'dan başlar ve
(satırsayısı - 1)'de biter. Yanlışlıkla satırsayısı numaralı index seçilseydi hata alırdın.
Kod: Tümünü seç
procedure TForm1.Button1Click(Sender: TObject);
begin
Randomize;
Random( Memo1.Lines.Count );
end;
- Aynı rakam tekrar üretilebilir. Bunun önüne geçmen için, başka bir listeden üretilen sayıları takip edip tüm Memo'daki tüm satırlar sırasıyla seçildiğinden emin olunduktan sonra baştan aynı sayıları yeniden seçmesini sağlaman lazım. Diğer yandan bu durum ne kadar önemli o sana kalmış.