-
Добрый день!
Подскажите, где правильнее расположить команды, которые нужно выполнить до создания главного окна?
Что-нибудь вроде этого:
begin // PROGRAM START HERE -- Please do not remove this comment if (ParamCount <> 1) or (ParamStr(1) <> '/Auto') then begin LogFileOutput('error.log', 'Параметры заданы неверно'); exit; end;
{$IFDEF KOL_MCK} {$I Project1_0.inc} {$ELSE}
Application.Initialize; Application.CreateForm(TMainForm, MainForm); Application.Run;
{$ENDIF}
end.
Если так оставить, то МСК при первом же обновлении переносит текст внутрь комментария. Смотрел в Project1_0.inc, но там первой же строкой идет NewMainForm( MainForm, nil );, т.е. сначала создается окно, а потом выполняются другие inc-файлы.
Можно отказаться от МСК, можно попытаться использовать initialization, но как-то всё коряво выглядит, нет ли более простого решения?
-
{$IFDEF KOL_MCK} {$I before.inc} {$I Project1_0.inc} {$ELSE}
-
> Дмитрий К © (26.01.09 14:15) [1] Пардон. Неправ.
-
Кажется, нашел решение. ...
begin ...
before.inc: begin
...
end.
-
Неординарно! Я попробую, спасибо!
-
{ имя_проекта_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. }
для выполнения кода перед созданием формы...
-
Это да, но перед имя_проекта_1.inc выполняется имя_проекта_0.inc, а там первой же строкой стоит NewForm1( Form1, nil ); И вот не пойму - то ли в описании ошибка, то ли рекомендуют всегда сначала создавать форму, не показывая ее, прежде чем выполнять какой-либо код.
-
.... NewForm1( Form1, nil ); {$I ..._1.inc}
{$I .._2.inc}
{$I .._3.inc}
Run( Form1.Form ); - только после выполнения этого форма станет видимой ....
конечно если хочешь ничего не создавать, а сразу вырубить приложение то вариант не совсем подходит
|