Einzelnen Beitrag anzeigen

Benutzerbild von Desmulator
Desmulator

Registriert seit: 3. Mai 2007
Ort: Bonn
169 Beiträge
 
#15

Re: lustiges problem mit dem compiler (?)

  Alt 13. Jun 2009, 16:28
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 )
Lars
There are 10 kinds of people in the world:
those who get binary, and those who don’t.
  Mit Zitat antworten Zitat