Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Выполнится ли Beep ?


Страницы:   1 2

Ega23 ©   (2005-01-19 12:12:00) 

Сразу оговорюсь: то, что ТАК делать нельзя - я прекрасно понимаю. Сейчас как раз занимаюсь "перекраиванием" логики. Но вопрос, тем не менее, остался.

Имеется следующая ситуация:


if (SomeObject.SomeProperty) and (SomeFunction(SomeObject)) then Beep;

function SomeFunction(SomeObject:TSomeObject):Boolean;
begin
...
SomeObject.Free;
Result:=True;
end;


SomeObject.SomeProperty в условии - True.
Изменится ли выполнение условия, после выполнения SomeFunction?


Digitman   (2005-01-19 12:29:00) [21]


> Изменится ли выполнение условия, после выполнения SomeFunction?


повторная проверка условия приведет к исключению, потому что SomeObject был тобой же и (надеюсь - успешно) разрушен в теле SomeFunction .. если конечно же перед повторной проверкой условия ты не создаешь SomeObject объект вновь .. но тогда и говорить об обязательной истинности условия SomeObject.SomeProperty не приходится - в ходе или после воссоздания объекта SomeObject ответственность за иниц-цию св-ва SomeProperty полностью лежит на тебе


Александр Иванов   (2005-01-19 12:22:00) [22]

Все будет работать. Но если выбран короткий вариант расчета логических выражений {$B-} и SomeObject.SomeProperty = False, то ф-я SomeFunction не выполнится


default   (2005-01-19 12:20:00) [23]

с вер-ью 0.99 нет
хотя бы только потому что переменная SomeObject в nil не устанавливается даже в случае проверки справа налево


Poirot   (2005-01-19 12:19:00) [24]

По моему скромному мнению только эксперементально и буит сильно зависеть от компилятора. Но по идее с лева на право буит вычисляться и если в SomeFunction что-то изменится, то оно не должно влиять... ибо уже часть выражения вычислено...


Amoeba   (2005-01-19 12:14:00) [25]

А разве нельзя проверить опытным путем?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо