Home
Top.Mail.Ru Yandeks.Metrika
Forum: "Main";
Current archive: 2002.01.08;
Download: [xml.tar.bz2];

Down

How to interrupt the launch of the file? Find similar branches


Tupnyk   (2001-12-19 18:59) [0]

В Проекте м/у application.initializ... и application.run в зависимости от некоторой функции и где её выполнять если формы еще только генерятся?



Юрий Зотов   (2001-12-19 19:21) [1]

Как это где? Там и выполнять, где нужно - перед Application.Run.

Жмете в меню: Project | View Source. Открывается текст DPR и в нем ручками пишете нужный код в нужном месте. А чтобы прервать запуск, можете написать Halt, либо используйте if - например, так:

Application.Initialize;
if <проверка условия> then
begin
Application.CreateForm (...);
Application.CreateForm (...);
.
Application.Run
end
end.



Дремучий   (2001-12-19 19:28) [2]

or
....
Application.Initialize;
if <проверка условия>
then Application.Terminate
else Application.Run;
end.




Юрий Зотов   (2001-12-19 19:36) [3]

> Дремучий © (19.12.01 19:28)

Application.Run - запускает цикл выборки сообщений.
Application.Terminate - посылает сообщение WM_QUIT.

Поэтому крайне интересно узнать - как же может сработать Application.Terminate, если Application.Run не было вызвано?



Tupnyk   (2001-12-19 21:07) [4]

А если часть условия должна быть получена в результате выполнения некоторой функции, то где эта сама функция должна выполняться?



y-soft   (2001-12-19 21:26) [5]

>Tupnyk
Можно последовать совету Юрия Зотова, но
если есть возможность, то лучше всего производить проверку еще до вызова Application.Initialize, а именно в секции Initialization самого первого загружаемого модуля, и при необходимости там же прерывать выполнение приложения простым вызовом Halt. Т.е. создать специальный модуль для этой цели и поместить его первым в USES файла .DPR



Юрий Зотов   (2001-12-19 21:35) [6]

> Tupnyk (19.12.01 21:07)

Наверное, все же не "выполняться", а "располагаться". Ответ - где угодно, лишь бы она была "видна" из DPR. То есть, хоть в самом DPR, хоть в любом прописанном в нем модуле.




Tupnyk   (2001-12-19 22:19) [7]

Thank you!



Дремучий   (2001-12-19 22:36) [8]

2 Yuri Zotov © (19.12.01 19: 36)
просто програма будет завершаться не по Application.Terminate;,
а по
end.

Вы правы, тем не менее такой код ошибки не выдает.

program Project1;

uses
Forms,
Unit1 in "Unit1.pas" {Form1};

{$R *.RES}

begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Terminate;
//Application.Run;
end.



Юрий Зотов   (2001-12-19 22:43) [9]

> Dense © (19.12.01 22: 36)

> Такой код ошибки не выдает...

А с чего бы ему выдавать ошибку? Конечно, не выдает. Но и ничего не делает: если Application.Terminate просто выкинуть, то будет точно то же самое - завершение по end. Что и было показано в примере.





Pages: 1 whole branch

Forum: "Main";
Current archive: 2002.01.08;
Download: [xml.tar.bz2];

Top















Memory: 0.84 MB
Time: 0.047 c
1-22172
ASTARD
2001-12-19 22:12
2002.01.08
People help pliz ???


14-22320
Alexander
2001-11-14 14:13
2002.01.08
Wow


3-21915
KAA
2001-12-04 10:28
2002.01.08
Resetting the MSSQL2000 variable


1-22060
Atrem
2001-12-18 19:18
2002.01.08
Insert Richedit method


1-22243
Gumbert-gumbert
2001-12-16 22:22
2002.01.08
How to take the root of the nth degree in Delphi?





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 Español 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
English French German Italian Portuguese Russian Spanish