![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Разное исполенение кода при дебаге и при простом запуске [D7, WinXP]
lockheed_man © (2006-11-09 16:47:00)Ув. Мастера, есть такой код
if GazetaOpened{булева функция} then
begin
CloseTabs;//процедура
for i := 0 to GetGazetaQueryG_PAGECOUNT.Value - 1 do CreateTab(i,PageNumbers[i])
end
else for i := 0 to GetGazetaQueryG_PAGECOUNT.Value - 1 do CreateTab(i,PageNumbers[i]);
Когда исполняю его по F8, то все выполняется правиль, когда просто запускаю по F9, то независимо от того, выполняется услови или нет, исполняется код записанный перед Else. От чего это может зависеть? Заранее спасибо.
Ketmar (2006-11-09 17:04:00) [21]опа. функция волшебным образом превратилась в переменную. какие ещё открытия нас ждут?
Сергей М. (2006-11-09 17:04:00) [22]
> не понял
Да что тут понимать-то ?)
При F8 ф-ция GazetaOpened() выполняется, скажем, 2 сек (с учетом неявных действий дубового дельфийскогоотладчика), а при F9 она же выполняется, скажем, 1 сек. ... А внутренняя логика этой ф-ции при этом немало зависит от тех самых времен ...
Еще страшней предположение, что внутри ф-ции анализируется признакт работы процесса под отладчиком)
lockheed_man (2006-11-09 17:01:00) [23]Глобальная переменна объявлена как GazetaOpened: Boolean = False;
Первый раз используется именно в этом куске кода и только потом изменяется. Т.е. прямо после запуска программы должен был выполняться else, что и происходит при пошаговом исполнении, а при простом прогоне проги выполняется только
begin
CloseTabs;
for i := 0 to GetGazetaQueryG_PAGECOUNT.Value - 1 do CreateTab(i,PageNumbers[i])
end
Уже несколько раз прошел по коду. Ума не приложу в чем причина.
lockheed_man (2006-11-09 16:55:00) [24]
> От времени, разумеется ...От чего же еще ?
>
Извини, не понял. Можно по-популярнее?
Ketmar (2006-11-09 16:50:00) [25]сильно подозреваю, что это зависит от ошибки в программе.
зыж маленький совет: можно для наглядности булевы функции вызывать какGazetaOpened(). ещё такие функциилучше начинать с "Is".
Сергей М. (2006-11-09 16:48:00) [26]
> От чего это может зависеть?
От времени, разумеется ...От чего же еще ?
Dmitrij_K (2006-11-09 16:48:00) [27]в 99,9% это ошибка в программе