Zitat von
arkon:
warum funktioniert "Result := Round(TChVoc(Item1).coeff - TChVoc(Item2).coeff);" aber nicht "if Round(TChVoc(Item1).coeff > TChVoc(Item2).coeff) then" !?!??!?!?
Afaik verlangt ein if-Statement immer einen Boolischen Ausdruck. Round gibt aber einen Integer zurück. In deinem zweiten Fall rundest du den Boolischen Ausdruck der duch > erzeugt wird.
Result := Round(TChVoc(Item1).coeff - TChVoc(Item2).coeff);
Result ist ein Integer. Daher möglich.
if Round( TChVoc(Item1).coeff > TChVoc(Item2).coeff ) then
Das Round klammert den Ausdruck
TChVoc(Item1).coeff > TChVoc(Item2).coeff ein. Round gibt einen Integer zurück. If will aber einen boolischen haben. Irgendwie geht das nicht oder ?
Edit: Du könntest auch auf LongBool casten. 0 wär dann true, alles andere false. (
imho )