Auf den ersten Blick fallen mir hier schonmal ein paar Stellen ins Auge:
Delphi-Quellcode:
if TryStrToInt64(Edit1.text, x) then
x := StrToInt(Edit1.text) else
x := 0;
z := 0;
Block vergessen?
if (x = 0) or (x < 0) then
Delphi-Quellcode:
if (x = 0) or (x < 0) then
begin
while (x > 1) do
Logik?
Ansonsten solltest du deinen Code evtl. mal korrekt einrücken, dann sieht man viele Fehler schon auf Anhieb. Als Anfänger ist es zudem manchmal hilfreich um
jeden Block ein
begin..end
zu setzen (auch, wenn nur ein Befehl folgt).