Сравнение булевых переменных
Добавлено: 17.02.2014 16:29:41
Есть 2 переменных типа ByteBool
при этом byte(BufDown) = 255, а byte(FDown) = 1
и что самое неожиданное BufDown = FDown получатся false (255 <> 1), хотя я ожидал результат true
Вопросы:
1. как такое может быть, что true представлено разными значениями (1 и 255)?
2. как сравнивать ByteBool в таком случае
И еще: такая ситуация получается при компиляции в Lazarus. В Delphi все работает четко.
- Код: Выделить всё
BufDown := not((Style = tbsCheck) and MouseEntered and Down_p and Down); // результат логических операций - true
и
FDown // установлено в true
при этом byte(BufDown) = 255, а byte(FDown) = 1
и что самое неожиданное BufDown = FDown получатся false (255 <> 1), хотя я ожидал результат true
Вопросы:
1. как такое может быть, что true представлено разными значениями (1 и 255)?
2. как сравнивать ByteBool в таком случае
И еще: такая ситуация получается при компиляции в Lazarus. В Delphi все работает четко.