主页
Top.Mail.Ru Yandeks.Metrika
论坛:“主要”;
当前存档:2002.01.08;
下载:[xml.tar.bz2];

向下

如何中断可执行文件的启动? 找到类似的分支


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
开始
Application.CreateForm(...);
Application.CreateForm(...);
...
Application.Run
结束
结束。



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

или
....
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 Юрий Зотов © (19.12.01 19:36)
просто програма будет завершаться не по Application.Terminate;,
а по
结束。

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

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]

>密集©(19.12.01 22:36)

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

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





Страницы: 1 整个分支

论坛:“主要”;
当前存档:2002.01.08;
下载:[xml.tar.bz2];

楼上















内存:0.84 MB
时间:0.03 c
14-22343
梅林
2001-11-02 14:17
2002.01.08
Со смеху чуть не упал на пол!


6-22267
wHammer
2001-09-28 15:00
2002.01.08
Было-бы очень удобно...


1-22199
T2
2001-12-16 07:16
2002.01.08
Make process


1-22169
Kreo
2001-12-20 21:16
2002.01.08
文件和访问权限


14-22330
阿列克谢T.
2001-11-02 13:25
2002.01.08
帮助我!!!





南非荷兰语 阿尔巴尼亚人 阿拉伯语 亚美尼亚 阿塞拜疆 巴斯克 白俄罗斯 保加利亚语 加泰罗尼亚 简体中文 中国(繁体) 克罗地亚 捷克 丹麦语 荷兰人 英语 爱沙尼亚语 菲律宾人 芬兰 法文
加利亚西语 格鲁吉亚语 德语 希腊语 海地克里奥尔语 希伯来语 印地语 匈牙利 北日耳曼语 印度尼西亚人 爱尔兰语 意大利语 日语 韩语 拉脱维亚 立陶宛 马其顿 马来语 马耳他语 挪威语
波斯语 波兰语 葡萄牙语 罗马尼亚 俄语 塞尔维亚 斯洛伐克 斯洛文尼亚 西班牙语 斯瓦希里 瑞典语 泰国人 土耳其 乌克兰 乌尔都语 越南人 威尔士语 意第绪语 孟加拉 波斯尼亚
宿务 世界语 古吉拉特语 豪萨语 苗族 伊博 爪哇 卡纳达语 高棉 老挝 拉丁语 毛利 马拉 蒙古人 尼泊尔 旁遮普 索马里 泰米尔人 泰卢固语 约鲁巴语
祖鲁
英文 Французский Немецкий Итальянский Португальский 俄文 Испанский