Thema: Delphi Stack Überlauf

Einzelnen Beitrag anzeigen

IngoD7

Registriert seit: 16. Feb 2004
464 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: Stack Überlauf

  Alt 18. Mai 2004, 07:51
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.
  Mit Zitat antworten Zitat