|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Проблема с логикой (сравнение)
Не то чтобы я новенький. Просто форум сверху.
Вот в чем проблема: Вот часть кода. Элементарного. Логика такая: если Bool1 = Bool2 то выводим сообщение. Почему это не работает? Код:
var Bool1, Bool2:Boolean; if not (Bool1 xor Bool2) then ShowMessage('ok'); Если кто не помнит. XOR Код:
1 xor 1 = 0 1 xor 0 = 1 0 xor 1 = 1 0 xor 0 = 0 Код:
Bool1 = Bool2 - не работает |
#2
|
||||
|
||||
У меня работает.
Пишу программы за еду. __________________ |
#3
|
||||
|
||||
|
#4
|
||||
|
||||
Пишу программы за еду. __________________ |
#5
|
||||
|
||||
И какой вывод?
|
#6
|
||||
|
||||
А вот так, с теми же данными работает.
|
#7
|
|||
|
|||
А еще есть подозрение, что типы не совпадают у тебя в реальном коде - вот фигня и получается. Типа Boolean и WORDBOOL, например.
PS. А вообще, в твоем случае можно написать проще: Код:
if (b1 = b2) then showmessage('ok'); Код:
if Boolean(State) = Boolean(Doc.Data.CD_ACTUAL) Then Continue; Последний раз редактировалось lmikle, 18.08.2017 в 01:53. |
#8
|
||||
|
||||
Цитата:
Обе переменные однозначно Boolean; Приведение типов тоже пробовал. |
#9
|
|||
|
|||
Ну не знаю.
Конкретно на Берлин 10.1 вот этот код работает: Код:
procedure TForm2.Button1Click(Sender: TObject); var b1, b2 : Boolean; begin b1 := false; b2 := false; if (b1 = b2) then showmessage('works!'); if not (b1 xor b2) then showmessage('works!'); end; |
#10
|
||||
|
||||
Цитата:
Значение второго Результат |
#11
|
||||
|
||||
Выложи минимальный проект реализующий проблему.
Пишу программы за еду. __________________ |