mam taki oto kod
procedure TForm1.r2Click(Sender: TObject);
var i,j,IloscLiczb,WylosButNr:byte;
ktorekliknieto: Array[1..9] of Boolean;
DoLosowania: Array[1..9] of byte;
begin
for i :=1 to 9 do begin
ktorekliknieto[i] := false;
DoLosowania[i] := 0;
end;
memo1.Clear;
IloscLiczb := 0;
j := 0;
WylosButNr := 0;
if s1.Checked = true then
begin
sleep(800);
if (bitbtn5.Glyph.Empty = true) or (bitbtn5.Tag = 2) then
begin
bitbtn5.Click;
r1.Checked := true;
exit;
end else
for i := 1 to 9 do
with TBitbtn(findcomponent('bitbtn'+inttostr(i))) do
begin
if (((glyph.Empty = false) and (tag = 0)) or ((glyph.Empty = false) and (tag = 1))) then
ktorekliknieto[i] := False else ktorekliknieto[i] := True;
if ktorekliknieto[i] = False then memo1.Lines.Add('false '+ inttostr(i));
if ktorekliknieto[i] = True then memo1.Lines.Add('true '+ inttostr(i));
end;
for i := low(ktorekliknieto) to high(ktorekliknieto) do
if ktorekliknieto[i] = False then next else
begin
DoLosowania[i] := i;
memo1.Lines.Add('do losowania ' +inttostr(DoLosowania[i]));
inc(IloscLiczb);
end;
memo1.Lines.Add('ilosc liczb ' +inttostr(IloscLiczb));
<b>
randomize;
j := randomRANGE(1,IloscLiczb+1);
WylosButNr := DoLosowania[(j)];
</b>
memo1.Lines.Add('wylosowano ' +inttostr(WylosButNr));
if (WylosButNr >= 1) then
with TBitbtn(findcomponent('bitbtn'+inttostr(WylosButNr))) do
begin
click;
r1.Checked := true;
end;
//odblokujbuttony;
end;
end;
od momentu randomize co jakis czas dzieja sie dziwne rzeczy. majac do losowania liczby z przedzialu od 1 do IloscLiczb czasem (dosyc czesto) zostaje wylosowane zero. nie wiem o co chodzi. moze ktos pomoze
dzieki