![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Секция {$I name.inc} в .DPR файле [Delphi, Windows]
mmn © (2005-05-30 11:38:00)Такой вот вопрос.
Пишу приложение, которое в случае, если в командной строке указаны параметры, не создает никаких визуальных форм, а просто обрабатывает данные и завершает работу. Реализовал это дело так: в самом .dpr файле перед {$IFDEF KOL_MCK} проверяю на наличие параметров командной строки и если нахожу, то после отработки процедур делаю Exit, чтобы формы не создавались, и программа сразу завершалась.
Проблема в том, что когда в следующий раз открываешь этот проект, то строчка проверки {$IFDEF KOL_MCK} автоматически перемещается в самое начало секции begin (до начала моей проверки на наличие параметров) и, следовательно, после компиляции программа работает не так как задумывалось (формы создаются в любом случае). Приходится каждый раз переносить эту строчку в другое место вручную.
Это так было задумано, или я что-то не понимаю?
mmn (2005-05-30 15:48:00) [1]Спасибо за разъяснения.
SPeller (2005-05-30 15:10:00) [2]Можно делать так:
{ KOL MCK } // Do not remove this line!
{$DEFINE KOL_MCK}
program WndInfo;
uses
KOL,
Unit1 in 'Unit1.pas' {Form1};
//{$R *.res}
begin
// Делаем всё что нам нужно, формы обрабатываем вручную, копируя текст, сгенерированный МСК.
{$WARNINGS OFF} // Отключаем ворнинги
end.
// Текст после end с точкой игнорируется, и сгенеренный МСК код не имеет силы.
begin // PROGRAM START HERE -- Please do not remove this comment
{$IFDEF KOL_MCK} {$I WndInfo_0.inc} {$ELSE}
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
{$ENDIF}
end.
ECM (2005-05-30 13:11:00) [3]>Это так было задумано, или я что-то не понимаю?
... Да - так задумано...для этих целей служит файл ProjectName_1.inc:
{ ИмяПроекта_1.inc
This file is for you. Place here any code to run it
just following Applet creation (if it present) but
before creating other forms. E.g., You can place here
<IF> statement, which prevents running of application
in some cases. TIP: always use Applet for such checks
and make it invisible until final decision if to run
application or not. }
Читай внимательнее документацию...:)