Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Режим отдалки и условная компиляция. 
:(
    Опции темы
Mifody
Дата 14.1.2011, 19:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 5.8.2008

Репутация: нет
Всего: 2



Всем доброго времени суток.
Поискал, не нашел, если было такое - кните ссылкой в лицо.

Что хочется раелизовать: использую условную компиляцию {$Define myVal} {$IfDef myVar} и прочее. Так вот, можно ли как то управлять условной компиляцией в зависимости от того, как запускается программа. Из под среды или из проводника.

Для чего нужно (скорее всего такой вопрос возникнет). Необходимо в режиме отладки отключить определенную часть исходного кода. Зачем? Ну надо, очень надо.

З.Ы. Да, я знаю что дерективы можно прописывать в файле, и потом внедрять {$I 'filename'} в программу, и там можно задавать разные параметры условной компиляции, чес сейчас и пользуюсь. Но конкретно для этого случая - не совсем удобно. 
Всем заранее спасибо за ответы.
PM MAIL WWW   Вверх
БелАмор
Дата 14.1.2011, 20:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 209
Регистрация: 10.6.2010
Где: Россия

Репутация: 5
Всего: 17



Цитата(Mifody @  14.1.2011,  19:34 Найти цитируемый пост)
Да, я знаю что дерективы можно прописывать в файле, и потом внедрять {$I 'filename'} в программу, и там можно задавать разные параметры условной компиляции, чес сейчас и пользуюсь.

Совершенно не обязятельно использовать включаемый файл. Можно все нужные символы задать в настройках проекта в разделе Directories/Conditionals.

Цитата(Mifody @  14.1.2011,  19:34 Найти цитируемый пост)
можно ли как то управлять условной компиляцией в зависимости от того, как запускается программа. Из под среды или из проводника

В данном случае речь идёт не об условной компиляции, а об определении в рантайме способа запуска программы. Хорошего во всех отншениях способа не знаю, но одним из вариантов мог бы быть такой: прописать в Run/Parameters запуск программы с параметром, который будет присутствовать при запуске из среды и отсутсвоать при запуске из проводника. При желании можно сделать эту настройку по умолчанию, чтобы она присутствовала во всех новых проектах. Если программа штатно может запускаться с параметрами, то нужно будет предусмотреть дополнительные моменты.
PM   Вверх
Mifody
Дата 14.1.2011, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 5.8.2008

Репутация: нет
Всего: 2



Цитата

запуск программы с параметром


ммм, блин, не прокатит. Там могут быть параметры коммандной строки :(.
Кстати, а никто не знает, ведь есть защита копонент, когда они работают только из под среды, а отдельно либо наг скрины выскакивают, либо вообще не работают.
PM MAIL WWW   Вверх
БелАмор
Дата 14.1.2011, 22:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 209
Регистрация: 10.6.2010
Где: Россия

Репутация: 5
Всего: 17



Цитата(Mifody @  14.1.2011,  20:57 Найти цитируемый пост)
Кстати, а никто не знает, ведь есть защита копонент, когда они работают только из под среды

Если мне не изменяет память, так делала демо-версия EhLib. Но там просто искалось окно Delphi и при запущенной Delphi программа спокойно запускалась и из проводника, т.е. хорошего решения там тоже не было.

Цитата(Mifody @  14.1.2011,  20:57 Найти цитируемый пост)
Там могут быть параметры коммандной строки 

Тогда можно задавать переменную окружения.
PM   Вверх
Keeper89
Дата 14.1.2011, 23:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2580
Регистрация: 26.2.2009

Репутация: 20
Всего: 58



Цитата(Mifody @  14.1.2011,  20:57 Найти цитируемый пост)
ммм, блин, не прокатит. Там могут быть параметры коммандной строки :(.

Ну и что? Можно получить все параметры и определить нужный.


--------------------
PM MAIL WWW   Вверх
Akella
Дата 15.1.2011, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



Цитата(Mifody @  14.1.2011,  19:34 Найти цитируемый пост)
Необходимо в режиме отладки отключить определенную часть исходного кода.

попробуй
http://www.delphisources.ru/pages/faq/base..._debugging.html

Добавлено через 2 минуты и 28 секунд
Можно искать через FindWindow(nil, 'Имя окан дельфи'); если нашли, что значит дельфи запущено, но здесь нужно подумать о том, что твоя программа может быть запущена НЕ из-под дельфи, а дельфи просто может быть запущена отдельною.

Добавлено через 3 минуты и 27 секунд
Попробуй директиву: {IF DEBUG}

Добавлено через 4 минуты и 20 секунд
ещё вариант
Код
if DebugHook <> 0 then ShowMessage('Программа в режиме отладки'); 

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0497 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.