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

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

Разное исполенение кода при дебаге и при простом запуске [D7, WinXP]


Страницы:   1 2

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% это ошибка в программе


Страницы:   1 2

Наверх

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