Битовая маска в условии

SveSve
отредактировано 13:51 Раздел: FastReport 2.xx VCL
if (([DialogForm.QueryRoom."add_true"] AND 262144)<>0) then
dot:='•'
В этом примере получается, что проверяется правая и левая часть как логическое условие, а не как накладывание маски, то есть если [DialogForm.QueryRoom."add_true"] отлично от нуля, то я всегда получу true, а нужный бит так и не проверится. Как лечить? И лечится ли вообще?

Комментарии

  • отредактировано 13:51
    Проверил работу AND - такой скрипт работает:

    begin
    a := 12;
    b := 'no';
    if (a and 8) <> 0 then
    b := 'yes';
    end
  • SveSve
    отредактировано 13:51
    А у тебя что за версия?
  • отредактировано 13:51
    Последняя, естественно - я же автор ;)
  • SveSve
    отредактировано 13:51
    Блин, ступил, извини ;) ))
    У меня 2.47. Кстати, может подскажешь почему такая хрень получается:
    Писал программу, много написал и тут горит винт. Восстанавливаю с бекапа, компилирую и мне выдает 3 ошибки на линковке:

    [Linker Error] Unresolved external '_FormReport' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\PROJECT\OURCITY\MAIN.OBJ
    [Linker Error] Unresolved external '_ShowDate' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\PROJECT\OURCITY\MAIN.OBJ
    [Linker Error] Unresolved external 'TFormReport::' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\PROJECT\OURCITY\OURCITY.OBJ

    Версия стояла тоже 2.47, в общем выдает ошибки на extern переменные, не линкуются. Я уже и билдер переустановил, и фастрепорт - не хочет линковаться. Думал, ну может бэкап закосяченный, поднял еще более старые - те тоже не компилятся, точнее компилятся, но не линкуются, причем именно на форме, где фастрепорт лежит. Все пути прописаны как в путях проекта, так и в путях окружения.

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.