Also Folgendes stört mich ungemein in deiner GetDivisor Methode:
Delphi-Quellcode:
repeat
ergebnis := Zahl / divisor;
str := FloatToStr(ergebnis);
if length(str)=1 then
begin
checkvar := true;
getSumTemp := getSum;
end;
until checkvar = true ;
Was machst du da? Was bewirkt das length(str)=1 ?
Ein paar Anmerkungen zu deinem Code, dir sicherlich sinnvoll sind:
- Du solltest nicht innerhalb einer Klasse mit globalen Variablen arbeiten, denn damit machst du dir das ganze Klassenkonzept kaputt.
- Um den Restwert einer Division zu bestimmen solltest du MOD benutzen. Die Umrechnung in Floats durch eine Division kann zu Rundungsfehlern führen. Das würde mir z.B. erklären warum im obigen Code deine if-Bedingung nicht greift.