![]() |
#30 |
Участник
|
static void TestEnum(Args _args)
{ int i, i2; real r, r2; real a = -257; boolean b;// = a; //NoYes b;// = a; ; b = a; info(strfmt("b = %1", b)); // проверяем что же реально хранится в переменной b и видим что там // лежит 255, которое расценивается как true в условии if, но ! // которое strFMT не умеет преобразовывать в строку "Да" или в строку "Нет" i = b; r = b; b = true; // а здесь уже будет лежать единичка info(strfmt("b = %1", b)); i2 = b; // так что strFMT отработает нормально r2 = b; info(strFMT('реальное содержимое при копировании в int %1 ; %2 ', i, i2)); info(strFMT('реальное содержимое при копировании в real %1 ; %2 ', r, r2)); } А все из-за того что фактически вместо boolean используется shortint и при присваивании происходит простое копирование в памяти без проверки типов. |
|
Теги |
recid, баг, ошибка, ax3.0 |
|
![]() |
||||
Тема | Ответов | |||
if (record) vs if (record.RecId) | 18 | |||
Как сформировать RecId | 18 | |||
поля, содержащие RecId | 15 | |||
aEremenko: Дефрагментация RecID | 2 | |||
Два RecId у одной записи таблицы | 33 |
|