Главная страница
    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.032 c
6-1233550485
vann
2009-02-02 07:54
2011.04.10
Как задать таймаут при определении имени хоста?


15-1293022442
12
2010-12-22 15:54
2011.04.10
Черная дыра. Как она может быть такой, как пишут?


1-1251722023
Spot
2009-08-31 16:33
2011.04.10
Ошибка при поиске в Excel


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


15-1293469266
Leon-Z
2010-12-27 20:01
2011.04.10
ISS.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский