Casa
Top.Mail.Ru Yandeks.Metrika
Fórum: "Principal";
Arquivo atual: 2002.01.08;
Download: [xml.tar.bz2];

Para baixo

Como interromper o lançamento do executável? Encontre agências semelhantes


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
começar
Application.CreateForm(...);
Application.CreateForm(...);
...
Application.Run
final
final.



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

ou
....
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]

Obrigado!



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

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

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

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. Что и было показано в примере.





Страницы: 1 filial inteira

Fórum: "Principal";
Arquivo atual: 2002.01.08;
Download: [xml.tar.bz2];

em cima









Memória: 0.84 MB
Hora: 0.034 c
1-22000
grevista
2001-12-13 07:59
2002.01.08
Transferir dados para uma célula da planilha do Excel


14-22408
fliz
2001-11-08 15:24
2002.01.08
Isso é um bug no Delphi ?! : ((


1-22255
Dmitry Kataev
2001-12-14 14:51
2002.01.08
Como implementar um novo item de menu no IE, que é chamado pelo botão direito (como no Reget, por exemplo)


3-21908
Dup
2001-11-28 13:27
2002.01.08
Aplicação pendurar


14-22334
Alex_A
2001-11-03 12:14
2002.01.08
GRÁFICOS !!!!!!!!! IMPORTANTE !!!!!!!!!!!!!!!!! HELP !!!!!!!!!!!!!!!!





afrikaans albanês Arabic armênio azerbaijano basco belarusian Bulgarian catalão Chinês simplificado) Chinês tradicional) croata checo dinamarquês Dutch Inglês estoniano filipino Finnish French
Galego georgiano German grego crioulo haitiano hebraico hindi húngaro islandês Indonesian irlandês Italian Japanese Korean letão lituano macedónio Malay maltês Norwegian
persa polonês Portuguese romeno Russa sérvio Slovak esloveno espanhol swahili sueco tailandês turco ucraniano urdu vietnamita galês ídiche bengali bósnio
cebuano esperanto gujarati hausa hmong igbo javanês kannada khmer lao latino maori marata mongol Nepali punjabi somali tâmil telugu yoruba
zulu
Английский francês Alemão Italiano Португальский russo Espanhol