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

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

Как отладить приложение с компонентом timer [D7]


Dmitriy ©   (2011-10-13 03:52:00) 

Дело такое: создаётся форма и через каждые 5 сек срабатывет процедура OnTimer и так до бесконечности.
Тав вот вопрос: как пропустить эту процедуру. Помогите плиз.
PS. Я новичок и сорцы не мои.


han_malign   (2011-10-13 13:28:00) [1]


> А если понадобится логгирование вести, на месте, у клиента?

- логи и отладочная заглушка - это две разные разницы...

{$IF Declared(IsDebug)}
  {$IFOPT D+}
       {$IFOPT O-}
            {$MESSAGE HINT 'Не забудьте прибить заглушку...'}
       {$ELSE}
            {$MESSAGE WARN 'А не релиз ли это?'}
       {$ENDIF}
  {$ELSE}
       {$IFOPT O-}
            {$MESSAGE ERROR 'Странный релиз.'}
       {$ELSE}
            {$MESSAGE FATAL 'Релиз и заглушка - они если честно...(с)'}
       {$ENDIF}
  {$ENDIF}
{$IFEND}


Ega23   (2011-10-13 13:09:00) [2]


> А если понадобится логгирование вести, на месте, у клиента?


Это плохая программа


OW   (2011-10-13 12:11:00) [3]


> а я нажму [Ctrl+F7]

не в том суть,
по [Ctrl+F7] ты же не сотрешь {$DEFINE DEBUG}, а так же поменяешь значение ISDеbug.
т.е. принципиально тоже самое.

Однако:
А если понадобится логгирование вести, на месте, у клиента?  
[Ctrl+F7] не поможет :)
А уж как превратить IsDebug в 1 способов много


han_malign   (2011-10-13 12:01:00) [4]


> как пропустить эту процедуру

- убрать breakpoint???

> а я нажму onButton -> IsDebug

- а я нажму [Ctrl+F7], и не буду вносить левую логику, которая потом наверняка всплывет у дцати клиентов...


Anatoly Podgoretsky   (2011-10-13 09:54:00) [5]

> Dmitriy  (13.10.2011 03:52:00)  [0]

if условие then Exit


OW   (2011-10-13 09:27:00) [6]


> Для этого человечество директивы компиляции придумало.
>
> {$IFDEF DEBUG}
>  ...
> {$ENDIF}
>

знаю.
а теперь, в процессе работы программы, включи отладку

а я нажму onButton -> IsDebug := 0; и таймер работает.
Надо IsDebug := 1 - и не работает, дальше отлаживаем.


Ega23   (2011-10-13 08:58:00) [7]


> вести переменную, какую нибудь, например IsDebug = 1 или
> 0


Для этого человечество директивы компиляции придумало.

{$IFDEF DEBUG}
 ...
{$ENDIF}


OW   (2011-10-13 08:54:00) [8]

вести переменную, какую нибудь, например IsDebug = 1 или 0
далее варианты

в создании формы
if IsDebug = 1 then
 Timer.Enabled := false;

или

OnTimer
begin
if IsDebug = 1 then
  exit;
.....
end;


Dennis I. Komarov   (2011-10-13 08:20:00) [9]

OnTimed
begin
Disable;
try
AnyCode;
finally
Enable;
end;
end;


MBo   (2011-10-13 05:34:00) [10]

например, в инспекторе объектов сделать таймеру Enabled = False


Наверх

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