Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.04.10;
Скачать: CL | DM;

Вниз

Выполнение команд до создания окна в МСК   Найти похожие ветки 

 
BMouradov   (2009-01-26 13:52) [0]

Добрый день!

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

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

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


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

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


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

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


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

Кажется, нашел решение.
...
{$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.


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

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


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

{ имя_проекта_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-28 09:36) [6]

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


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

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

{$I .._2.inc}

{$I .._3.inc}

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

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



Страницы: 1 вся ветка

Текущий архив: 2011.04.10;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.011 c
15-1293035423
Dimka Maslov
2010-12-22 19:30
2011.04.10
Опять про физику


2-1294653381
softi
2011-01-10 12:56
2011.04.10
сохранение JPEG из буфера обмена


6-1233550485
vann
2009-02-02 07:54
2011.04.10
Как задать таймаут при определении имени хоста?


2-1294821073
student_92
2011-01-12 11:31
2011.04.10
Классы


15-1293398987
Юрий
2010-12-27 00:29
2011.04.10
С днем рождения ! 27 декабря 2010 понедельник