Главная страница
    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.006 c
9-1188239972
Woriors
2007-08-27 22:39
2011.04.10
Как правильно делать игры


15-1292954454
TUser
2010-12-21 21:00
2011.04.10
Помидор - это овощ или фрукт?


15-1293485386
Юрий
2010-12-28 00:29
2011.04.10
С днем рождения ! 28 декабря 2010 вторник


15-1293211137
alexdn_
2010-12-24 20:18
2011.04.10
Немножко php


15-1293091737
Recurse
2010-12-23 11:08
2011.04.10
Тема - благодарность





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