Size: a a a

2020 February 03

AZ

Andrey Zubov in Delphi & Lazarus
без имени работает, видимо для генераторов добавили, но странно что для sqlite просто не сделали не использовать
источник

DM

Dmitry Mozulyov in Delphi & Lazarus
А если в настройках поменять Complete boolean evaluation и сделать Build?
источник

SB

Sergey Bodrov in Delphi & Lazarus
Преобразование левого операнда OR в Variant - это отдельный прикол. По идее, это отключаемо в свойствах правого операнда LeftPromotion/RightPromotion, но как видно, компилятор это не оптимизирует.
источник

DM

Dmitry Mozulyov in Delphi & Lazarus
Ещё можно попробовать:

b := (idx < 0) or Boolean(Pars[idx].value);
источник

АР

Александр Сергеевич Рудь in Delphi & Lazarus
Dmitry Mozulyov
А если в настройках поменять Complete boolean evaluation и сделать Build?
ух, Я походу врата в ад открыл, надо было после установки флага полный ребилд сделать, теперь куча ошибок  вылезла, буду разбираться)
источник

AS

Alexey Shumkin in Delphi & Lazarus
Александр Сергеевич Рудь
ух, Я походу врата в ад открыл, надо было после установки флага полный ребилд сделать, теперь куча ошибок  вылезла, буду разбираться)
я бы не стал )
проще отдельный тест написать )
источник

DB

Dmitry Belkevich in Delphi & Lazarus
надо было после установки флага полный ребилд сделать
да, так надежнее. думаю, что удобнее без флага и разрабатывать и релизить. не очень удобный флаг
источник

АР

Александр Сергеевич Рудь in Delphi & Lazarus
Dmitry Belkevich
надо было после установки флага полный ребилд сделать
да, так надежнее. думаю, что удобнее без флага и разрабатывать и релизить. не очень удобный флаг
от слова совсем)
источник

AS

Alexey Shumkin in Delphi & Lazarus
только для отдельных случаев ))
те включаются только явным образом директивой компиляции
источник

DB

Dmitry Belkevich in Delphi & Lazarus
можно локально временно включить директивой. иногда нужно (например - что бы гарантированно вызвать функцию возвращающую значение и меняющую состояние) другое дело, что это сам по себе плохой дизайн. я как-то у себя напаривался на такой случай
источник

АР

Александр Сергеевич Рудь in Delphi & Lazarus
Dmitry Mozulyov
А если в настройках поменять Complete boolean evaluation и сделать Build?
вот, в новом проекте собрал, изменений от флага booleval чет не вижу
источник

V

Viktor in Delphi & Lazarus
Dmitry Mozulyov
Ещё можно попробовать:

b := (idx < 0) or Boolean(Pars[idx].value);
Я что то не то думаю или все ж обращение к  элементу массива будет по-любому т.к. это все ж булево или булеву не булево?

Просто как на меня то в лоб низзя только через сахар или корректную логику...
источник

DB

Dmitry Belkevich in Delphi & Lazarus
должно работать слева направо до первого достаточного условия. то есть - если слева от or true, то дальше проверять смысла нет, от второй половины выражения результат не зависит никак, что бы и как бы там не стояло. и вычислять его не нужно. если выключена опция B конечно
источник

GB

George Bakhtadze in Delphi & Lazarus
Александр Сергеевич Рудь
вот, в новом проекте собрал, изменений от флага booleval чет не вижу
так и не должно быть. он в любом случае считает оба операнда. в общем, еще повод держаться от вариантов подальше.
источник

DM

Dmitry Mozulyov in Delphi & Lazarus
Александр Сергеевич Рудь
вот, в новом проекте собрал, изменений от флага booleval чет не вижу
function DDD(const A: Boolean; const B: Variant): Boolean;
begin
 Result := A or Boolean(B);
end;

begin
 try
   DDD(True, True);
 except
   on E: Exception do
     Writeln(E.ClassName, ': ', E.Message);
 end;
end.
источник

DM

Dmitry Mozulyov in Delphi & Lazarus
Если ты не делаешь Boolean, то or считается операцией над вариантом
источник

DB

Dmitry Belkevich in Delphi & Lazarus
да, возможно Дмитрий прав. компилятор может 'тянуть' типы в выражениях до более 'старших'
источник

AZ

Andrey Zubov in Delphi & Lazarus
у TFDMemTable возможно как-то поменять значения полей в памяти минуя все обработчики и события, просто замена значения в поле?
источник

AE

Andrey Elev in Delphi & Lazarus
Народ, помогите, выбор значения в DBComboBox, при потери фокуса мышью, само сменяется на 1 значение в запросе. Если клавой выхожу из DBComboBox, то все нормально. Как решить проблему. Я уже сдался.
источник

DB

Dmitry Belkevich in Delphi & Lazarus
ищи примеры в интернетах
источник