如题
解决方案 »
- DELPHI7和浏览器的通信求助!
- DBGridEh在繁体系统下显示简体中文的问题!急!!!
- 我该不该继续学Delphi?迷茫中......请大家多多指点.
- adoquery多个参数问题!
- 用试用版控件开发的应用程序会有过期问题么?
- [提问] 变长字符串在行文件(流文件)中的存取及其他
- delphi webservice可否返回窗体??若能请给一个实例源码,谢谢!
- 在delphi中内嵌ole控件为什么不能直接编辑呢,有什么方法可以让它在delphi中,就可直接编辑吗
- ADO 出错了! 看了!
- 有没有一个控件,它连接DBGrid,DBGrid的内容自动生成到报表
- UDP 的一点问题
- 阿发伯,delphiGuy 你们还回来不?
线程中我用memo1.visible:=true; 运行的时候一切正常线程一结束memo1就看不到了关闭程序的时候就出错,好像和你的问题一样,请高手告诉一下这个要怎么解决
TMyThread = class(TThread)
protected
procedure Execute;override;
end;procedure TMyThread.Execute;
var
f: TForm;
begin
self.FreeOnTerminate := true;
f := TForm.Create(Nil);
f.Show;
f.Free;//分别测试屏蔽和不屏蔽此行
end;然后添加程序测试代码:procedure TForm1.Button1Click(Sender: TObject);
var
t: TMyThread;
begin
t := TMyThread.Create(false);
end;在屏蔽和不屏蔽Execute当中f.Free这行代码的两种状态下,打开任务管理器,切换到“进程”页,然后在“查看”菜单的“选择列...”当中选择“内存使用”和“GDI 对象”两项,然后查看其中的变化做出比较。上面的测试是使用TForm,对于TFrame需要有一个可视的载体,否则不会有GDI资源的变化。
VCL的线程类,只是CreateThread函数基础上加了 操作VCL对象的事件,放到主线程去执行
Create 函数只是创建了一个挂起的线程, FreeThread := Thread.FFreeOnTerminate;
Result := Thread.FReturnValue;
Thread.DoTerminate;
Thread.FFinished := True;
SignalSyncEvent;
if FreeThread then Thread.Free;
{$IFDEF MSWINDOWS}
EndThread(Result);
{$ENDIF}
线程结束时所做的操作