我想通过一个线程,来生成一个窗体,怎么报错啊?procedure mythread.Execute;
begin
FForm.Create(FForm);//定义的一个TFORM
FForm.Width :=50;
FForm.Height :=30;
FForm.BorderStyle := bsDialog;
FBtok.Width :=40;
FBtok.Left :=5;
FBtok.Height :=20;
FBtok.Top :=5 ;
if FFlag = 0 then
FBtok.Caption := '发送失败'
else
FBtok.Caption := '发送成功';
FBtok.Create(FForm);//这个是想在生成的窗体上加个按妞
FBtok.OnClick := onclick;
FForm.Show;
end;
begin
FForm.Create(FForm);//定义的一个TFORM
FForm.Width :=50;
FForm.Height :=30;
FForm.BorderStyle := bsDialog;
FBtok.Width :=40;
FBtok.Left :=5;
FBtok.Height :=20;
FBtok.Top :=5 ;
if FFlag = 0 then
FBtok.Caption := '发送失败'
else
FBtok.Caption := '发送成功';
FBtok.Create(FForm);//这个是想在生成的窗体上加个按妞
FBtok.OnClick := onclick;
FForm.Show;
end;
FForm.Create(FForm);//定义的一个TFORM
应该是:
FForm := TForm.Create(self);下面那个按钮的创建也应该相应修改
begin
FForm :=tform.Create(application);//定义的一个TFORM
FForm.Width :=500;
FForm.Height :=300;
FForm.BorderStyle := bsDialog;
FBtok :=tbutton.Create(FForm);//这个是想在生成的窗体上加个按妞
FBtok.Width :=300;
FBtok.Left :=5;
FBtok.Height :=100;
FBtok.Top :=5 ;
if FFlag = 0 then
FBtok.Caption := '发送失败'
else
FBtok.Caption := '发送成功';
FBtok.OnClick := onclick;
FForm.Showmodel;
end;
在窗体里生成控件时 有parentwindow这个属性,但是在线程里,生成的按钮没有这个属性阿,该怎么弄?2。线程生成的窗口,我在关闭的时候,会提示错误,说什么窗口句柄的,怎么解决?
要不开一次线程会占用你系统一句柄数.系统的
资源是有限的
FForm :=tform.Create(application);//定义的一个TFORM
FForm.Width :=500;
FForm.Height :=300;
FForm.BorderStyle := bsDialog;
FBtok :=tbutton.Create(FForm);//这个是想在生成的窗体上加个按妞
FBtok.Parent:=FForm; //按钮放到FForm上,显示之
FBtok.Width :=300;
FBtok.Left :=5;
FBtok.Height :=100;
FBtok.Top :=5 ;
if FFlag = 0 then
FBtok.Caption := '发送失败'
else
FBtok.Caption := '发送成功';
FBtok.OnClick := onclick;
FForm.ShowModal;
FForm.free; //线程结束时就把FForm释放掉,就不会出现句柄的错误了