Witam.
Mam problem z kodem. Chciałbym, by "randomrange" nie był określany co chwila nowy (co częstotliwość intervalu timera). Chcę, by nowy randomrange był stosowany tylko i wyłącznie po użyciu funkcji.
Już przedstawiam o co chodzi:
procedure TForm1.Timer2Timer(Sender: TObject);
var
I1:integer;
I2:integer;
begin
Randomize;
Timer2.Interval := RandomRange(SpinEdit2.Value, SpinEdit12.Value);
I1 := StrToInt(label7.Caption); //current
I2 := StrToInt(label22.Caption); //maxhp
if (label7.Caption = '0') then
begin
Label1.Visible := true;
CheckBox1.Checked := false;
Checkbox2.Checked := false;
CheckBox3.Checked := false;
CheckBox4.Checked := false;
CheckBox5.Checked := false;
application.Title:='ERROR';
Showmessage('ERROR.')
end
else
if (strtoint(label7.Caption)) >= 0 then
begin
Label38.Caption := (FloatToStr(RandomRange(SpinEdit1.Value-10,SpinEdit1.Value+5)));
if (I1/I2*100) <= RandomRange(SpinEdit1.Value-10,SpinEdit1.Value+5) then
begin
Listbox3.Items.Add('Heal used at: ' + FloatToStr(I1/I2*100) + '%');
end;
end;
end;
Dajmy na to SpinEdit1.Value wynosi 80. Chciałbym, by raz wykonywało funkcję, gdy wyniesie on np. 70, a raz gdy 85, raz gdy 72, raz gdy 82 itp. Żeby była to randomowa luczba pomiędzy 70-85.
Niestety, ale gdy częstotliwość odświeżania timera jest mała, to ten numer również się zmienia bardzo szybko. Mi zależy na tym, by nie zmieniał się on wraz z intervalem timeru. Da radę zrobić coś takiego?
Dzięki.