![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как отладить приложение с компонентом 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