Hierbei:
If Edit3.text=IntTostr(1 or 3 or 5 or 7 or 9 or 12 or 14 or 16 or 18 or 19 or 21 or 23 or 25 or 27 or 30 or 32 or 34 or 36) then
arbeitet das "or" nicht wie du aus dem sprachlichen Gebrauch her vermutest. Es wird hier ein
logisches Oder auf Zahlen angewendet, und du hast dort im Grunde eigentlich dieses hier stehen:
If Edit3.text=IntTostr(63) then
. (63 ist das Ergebnis von 1 or 3 or 5 or...)
Wenn du anders herum umwandelst wird es deutlich einfacher, vorausgesetzt ihr dürft ein sogenanntes "Set" benutzen:
if StrToInt(Edit3.Text) in [1, 3, 5, 7, 9, 12, 14, 16, 18, 19, 21, 23, 25, 27, 30, 32, 34, 36] then
Das wäre die bei weitem einfachste Variante. Der lange und hässliche Weg könnte (angedeutet) so aussehen:
Delphi-Quellcode:
var
geworfen: Integer;
begin
// würfel code hier, Ergebnis in "geworfen" speichern
if (geworfen = 1)
or (geworfen = 3)
or (geworfen = 5)
or (geworfen = 7)
or ...
...
...
then
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)