1 (edited by zoomix 2015-02-13 18:01:21)

Topic: Булева алгебра!

Добрый всем вечер!

Пытаюсь оптимизировать скрипт и вместо нескольких "if  then"  проверок оставить одну и вставить логическое "И"
Например, есть 2 строки:
---------
if s= '0'  then frmStart.Button1.Visible := False;
if s= '0'  then  frmStart.Image1.Visible := False;
----------
хочу заменить на :
----------
if s= '0' then frmStart.Button1.Visible and frmStart.Image1.Visible := False;
---------
Но при выполнении скрипта где-то выскакивает ошибка. sad
Пробовал разные варианты, например:
---------
if s= '0' then frmStart.Button1.Visible := False; and frmStart.Image1.Visible := False;
----------

Но ничего не проходит.
Подскажите плз, как правильно записать это выражение с одним if и логическим and?

Re: Булева алгебра!

and в данном случае не нужен
можно так

if s= '0' then
begin
  frmStart.Button1.Visible := False;
  frmStart.Image1.Visible := False;
end;

или даже так

frmStart.Button1.Visible := not (s= '0'); 
frmStart.Image1.Visible := not (s= '0'); 

подробней об операторе if
http://thedelphi.ru/les/les3.php
http://www.delphisources.ru/pages/faq/f … f.php.html

Dmitry.

Re: Булева алгебра!

Спасибо! А какой из вариантов будет выполняться быстрее?

Re: Булева алгебра!

Одинаково )

Dmitry.

Re: Булева алгебра!

ок, tnx!