Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "KOL";
Текущий архив: 2011.04.10;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "KOL";
Текущий архив: 2011.04.10;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.005 c
2-1294746515
student22
2011-01-11 14:48
2011.04.10
Delphi &amp; Web


2-1294736710
worldmen
2011-01-11 12:05
2011.04.10
Удаление заголовка окна


2-1294836816
пишу_курсовой
2011-01-12 15:53
2011.04.10
посоветуйте, как организовать алгоритм


15-1293012299
TUser
2010-12-22 13:04
2011.04.10
Итак, военные хакеры вероятного противника ...


2-1294837070
TKN
2011-01-12 15:57
2011.04.10
библиотека qtinf.dll при установке приложения





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский