А еще есть подозрение, что типы не совпадают у тебя в реальном коде - вот фигня и получается. Типа Boolean и WORDBOOL, например.
PS. А вообще, в твоем случае можно написать проще:
Код:
if (b1 = b2) then showmessage('ok');
Ну или если брать "боевой" код:
Код:
if Boolean(State) = Boolean(Doc.Data.CD_ACTUAL) Then Continue;
Т.е., срабатывает когда обе переменные True или обе False, что тебе и надо.