Erstmal zu
if Bit7.checked = true then
.
Diese Konstanten sollte man immer nur für Zuweisungen, aber
niemals für Vergleicher verwenden,
denn wie bereits bemerkt, besteht ein Delphi-Boolean intern aus einem Byte, wo es 1 Mal das False und 255 Mal ein
True Nicht-False gibt.
und bei einem LongBool hast du den Spaß sogar mit 4.294.967.295 Mal dem "True".
i := i + 1;
Wenn man "Binär" rechnen will, dann natürlich mit binären Operatoren ala OR und AND und nicht mit arithmetischen Operatoren ala ADD (+),
denn
B := B or $01; // oder 1
arbeitet immer richtig, aber ein
B := B + $01; // oder 1
macht Probleme, wenn dieses Bit bereits gesetzt ist.
Aber dafür hast'e ja nun das Tutorial.
Delphi-Quellcode:
var B: Boolean;
B := Boolean(3); // die Variable könnte mal ausversehn mit einem "unschönen" True aus irgendeiner Funktion raus kommen.
if B = True then ShowMessage('Falsch: True');
if B = False then ShowMessage('Falsch: False');
if B then ShowMessage('Richtig: True');
if not B then ShowMessage('Richtig: False');
PS: TCheckListBox und eine For-Schleife über alle Bits/CheckBoxen.