Форум: "Начинающим";
Текущий архив: 2018.02.04;
Скачать: [xml.tar.bz2];
ВнизКак корректно сравнить/присвоить Longint с Сишными TRUE и FALSE? Найти похожие ветки
← →
Незарегистрированный (2016-02-15 17:46) [0]У меня довольно глупый вопрос по WinAPI... Точнее как с Си переводится на паскаль...
Вот что написано в доках:
> When the wParam parameter is FALSE,
> an application should return TRUE to бла-бла,
> or it should return FALSE to бла-бла-бла.
Делаю так:if wParam=0 then result:=1;
Поведение вообще не такое как должно быть.
Си не изучал, только синтаксис понимаю. Подскажите пожалуйста - как правильно отобразить Сишные TRUE и FALSE в Паскаль?
← →
Dimka Maslov © (2016-02-15 18:44) [1]Бывают разные случаи.
1. FALSE это нуль, TRUE это не нуль (обычно это тип BOOL)
2. FALSE это нулевой первый бит, TRUE это единичный первый бит, в старших битах может быть что угодно (обычно это тип bool)
и всякие экзотические варианты, например, когда TRUE это -1...
← →
sniknik © (2016-02-15 18:54) [2]> и всякие экзотические варианты, например, когда TRUE это -1...
дельфя -
Memo1.Lines.Add(IntToStr(Integer(boolean(true))));
Memo1.Lines.Add(IntToStr(Integer(boolean(false))));
Memo1.Lines.Add(IntToStr(Integer(BOOL(true))));
Memo1.Lines.Add(IntToStr(Integer(BOOL(false))));
> как правильно отобразить Сишные TRUE и FALSE в Паскаль
не поверишь... пиши true и false будет однозначно.
← →
Незарегистрированный (2016-02-15 19:09) [3]> не поверишь... пиши true и false будет однозначно.
wParam это WPARAM это Longint
result это LRESULT это тоже Longint
Просто "пиши true и false" даёт "Incompatible types: "Integer" and "Boolean"".
Или вы так предлагаете?:if wParam=Integer(BOOL(False)) then result:=Integer(BOOL(True));
Всё равно нет нужного поведения...
гм. Перепишу-ка на Си, посмотрю как там будет работать. Может в доках опечатка?
← →
sniknik © (2016-02-15 21:23) [4]> Или вы так предлагаете?:
> if wParam=Integer(BOOL(False)) then result:=Integer(BOOL(True));
просто
if wParam=Integer(False) then result:=Integer(True);
> Всё равно нет нужного поведения...
значения в коде выше смотрел?
← →
Игорь Шевченко © (2016-02-15 21:41) [5]
> Делаю так:
>
> if wParam=0 then result:=1;
Правильно делаешь
> Поведение вообще не такое как должно быть.
значит ошибка в другом месте
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2018.02.04;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.012 c