Das resultiert aber in der Verwendung von BOOLEAN und BOOL, welche sich eben in dem unterscheiden.
Delphi-Quellcode:
var
a : BOOLEAN;
b : BOOL;
c ,
d : INTEGER;
begin
a := TRUE;
b := TRUE;
c := INTEGER(a);
d := INTEGER(b);
end;
Geht mal Schritt für Schritt darüber und schaut euch an was herauskommt. Die Variable a, welche BOOLEAN deklariert ist, enhält INT 1. Aber b, welche als BOOL deklariert ist enthält INT -1.
Edit:
Um also nochmal zu der Frage des Threaderstellers zurückzukommen. Inkrementiere einfach eine Variable so oft, wie ein Wahrheitswert auftritt. Willst du noch die Gesamtzahl aller Werte wissen, so inkrementiere stets noch eine zweite Variable mit.
Delphi-Quellcode:
var
BoolVal : BOOLEAN;
TrueVals,
SumVals : INTEGER;
{...}
if BoolVal then inc(TrueVals);
inc(SumVals);
Lars S.
Wer nicht mit der Zeit geht, geht mit der Zeit.