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

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

Секция {$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. }


Читай внимательнее документацию...:)


Наверх

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