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

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

Разное поведение программы при выполнении и отладке [D2005]


И. Павел ©   (2009-05-29 11:19:00) 

Здравствуйте.
Мне нужно менять поведение программы, в зависимости от того, отлаживаю я ее или же она выполняется у пользователя. Как можно определить, запущена ли программа для отладки в Delphi, или выполняется сама по себе? Может быть, есть какая-нибудь константа(как в случае с определением – находится компонент в design time или нет)?


И. Павел   (2009-05-29 17:24:00) [1]


> clickmaker ©

Спасибо. Сменил выходную директорию, так что теперь и отладку можно не отслеживать!


clickmaker   (2009-05-29 14:40:00) [2]

> если забуду поменять ее перед началом отладки, могут удалиться
> исходники

а не надо экзешник, да и dcu класть вместе с исходниками. Для этого в настройках проекта есть output dir


И. Павел   (2009-05-29 14:36:00) [3]


> Ega23 ©

Спасибо.


Ega23   (2009-05-29 14:29:00) [4]


> Подскажите, пожалуйста, где эту директиву указать?


Project -> Options -> Directories/Conditionals -> Conditionals defines


И. Павел   (2009-05-29 14:25:00) [5]


> Ega23 ©

Просмотрел все опции проекта, но ничего связанного с директивами компиляции не нашел. Подскажите, пожалуйста, где эту директиву указать? Или DEVELOPER нужно объявлять вручную?

{$DEFINE DEVELOPER}
{$IFDEF DEVELOPER}
 Caption:='Разработка';
{$endif}



> Сергей М. ©


Нет. Просто программа перед завершением чистит свою папку. Сейчас я  использую константу, но если забуду поменять ее перед началом отладки, могут удалиться исходники.


Сергей М.   (2009-05-29 13:04:00) [6]


> И. Павел   (29.05.09 11:19)  


Уж не защитой ли приложения от взлома ты озаботился ?

Это я к тому, что подобные проверки с легкостью обходят даже начинающие "кулхацкеры"


Ega23   (2009-05-29 13:00:00) [7]

Нужно директиву компилляции в опциях проекта указать.


И. Павел   (2009-05-29 12:03:00) [8]

Ega23, Rouse_ © спасибо. С IsDebuggerPresent разобрался:

function IsDebuggerPresent:boolean; stdcall; external 'kernel32.dll' name 'IsDebuggerPresent';

а DELEVOPER у меня всегда не определен. Может быть, для него нужно что-то подключить?


Rouse_   (2009-05-29 11:33:00) [9]

if IsDebuggerPresent then - мы под отладчиком


Ega23   (2009-05-29 11:27:00) [10]

{IFDEF DEVELOPER}
......
{$ENDIF}


Наверх

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