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

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

Выполнение команд до создания окна в МСК


BMouradov ©   (2009-01-26 13:52:00) 

Добрый день!

Подскажите, где правильнее расположить команды, которые нужно выполнить до создания главного окна?

Что-нибудь вроде этого:

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, но как-то всё коряво выглядит, нет ли более простого решения?


D[u]fa   (2009-01-28 12:47:00) [1]

....
 NewForm1( Form1, nil );
{$I ..._1.inc}

{$I .._2.inc}

{$I .._3.inc}

 Run( Form1.Form ); - только после выполнения этого форма станет видимой
....

конечно если хочешь ничего не создавать, а сразу вырубить приложение то вариант не совсем подходит


BMouradov   (2009-01-28 09:36:00) [2]

Это да, но перед имя_проекта_1.inc выполняется имя_проекта_0.inc, а там первой же строкой стоит NewForm1( Form1, nil );
И вот не пойму - то ли в описании ошибка, то ли рекомендуют всегда сначала создавать форму, не показывая ее, прежде чем выполнять какой-либо код.


D[u]fa   (2009-01-26 18:25:00) [3]

{ имя_проекта_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. }

для выполнения кода перед созданием формы...


BMouradov   (2009-01-26 17:01:00) [4]

Неординарно! Я попробую, спасибо!


Дмитрий К   (2009-01-26 14:57:00) [5]

Кажется, нашел решение.
...
{$IFDEF KOL_MCK} {$I before.inc} {$ENDIF}
begin // PROGRAM START HERE -- Please do not remove this comment
...

before.inc:
begin
 ...
 {$I Project1_0.inc}
end.


Дмитрий К   (2009-01-26 14:26:00) [6]

> Дмитрий К ©   (26.01.09 14:15) [1]
Пардон. Неправ.


Дмитрий К   (2009-01-26 14:15:00) [7]

{$IFDEF KOL_MCK} {$I before.inc} {$I Project1_0.inc} {$ELSE}


Наверх

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