现在写的进度条运行,必须在窗体显示后,通过按钮点击事件,才运行。
我想显示后,不通过按钮点击,直接运行。
form.onshow用了,窗体就变白程序假死了。
该用哪个事件?
我想显示后,不通过按钮点击,直接运行。
form.onshow用了,窗体就变白程序假死了。
该用哪个事件?
解决方案 »
- delphi交流群
- 关于DBGRIDEH的问题???解决立马给分?在线等急?
- 求职:广州有没有公司请Delphi或PHP程序员呢?
- 在d7中为什么不能使用自带的TLCDNumber组件?
- XML---在IXMLNode如何加入一个CDATA数据类型的节点?
- tdbchart控件横坐标问题
- ADO的问题!
- 问个线程里面有while(TRUE)循环的问题。
- 网上有哪些Delphi的人气比较旺的论坛,
- 为什么我的windows不能显示hint(就是鼠标指向对象的提示),搞的我的delphi都不知道用的是哪个控件,怎么解决?(千万不要告诉我重装windows)
- checkbox相关问题,求教各位
- 关于DELPHI调用DLL
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
for (int i = 0; i <= 10; i++)
{
this.progressBar1.Value = 10 * i;
System.Threading.Thread.Sleep(1000);
}
}
}
但是怎么样实现线程内容完成后结束程序。
我把application.Terminate;写在线程事件里面,
发现程序窗体没有了,但是内存中还是存在!
应该在哪个事件中,获取线程执行完毕的参数,然后结束程序???
application.Terminate应该是把整个进程都终止了。有没有可能是其他代码由在启动你的程序
procedure RunExe;
begin
form1.Hide;
winexec(pchar(LocalDir + '\' + Entry), sw_show);
application.Terminate;
end;
function MyThreadFun(p: Pointer): Integer; stdcall;
var
LName, LTime, RName, RTime, DownloadList: TStrings;
i, j, k: integer;
f: TextFile;
a: TStringList;
begin
form1.FTPClient.Connect();
//省略部分代码
downloadlist.Free;
Result := 0;
RunExe();
end;
procedure TForm1.FormCreate(Sender: TObject);
var
ID: DWORD;
ExitCode: DWORD;
Text:string;
begin
//省略部分代码
hThread := CreateThread(nil, 0, @MyThreadFun, nil, 0, ID);
end;