Zitat von
teebee:
Du rufst aus FormShow wieder FormShow auf...
Wenn das zu oft passiert, gibt es einen Stack-Überlauf.
Wenn Du verhindern willst, dass eine Zahl Null wird, dann rufe Random so auf:Zahl := Random(9)+1; // Zahl von 1 bis 9
Gruß, teebee
Dann gibt's aber keine Werte < 1 mehr.
Die Grundidee des neuerlichen FormShow-Aufrufes scheint zu sein, dass einfach die Zufallszahlenauswahl wiederholt werden soll, wenn eine der Zahlen 0 ist?!
Das geht so besser:
Code:
procedure TForm1.FormShow(Sender: TObject);
begin
Randomize;
Repeat
zahl1:=Random(10);
zahl2:=Random(10);
zahl3:=Random(10);
Until (Zahl1>0) and (Zahl2>0) and (Zahl3>0);
Label1.Caption:=FloatToStr(zahl1) + ' = ' + FloatToStr(zahl2) + 'x' + ' - ' +FloatToStr(zahl3);
end;
So bleiben auch die Werte zwischen 0 und 1 weiterhin möglich.