在线程的Execute中设置断点。
d5中据说有更好的线程跟踪机制,我没有用过。
d5中据说有更好的线程跟踪机制,我没有用过。
解决方案 »
- 我们的程序有一个框架,
- 高人帮忙,寻找一个类似于StringGrid的控件,能够对每个cell进行操作,包括cell大小、内容等等
- 如何分割数据库中的字段值。。。???
- 探讨,C++和Delphi(OOP)的本质区别是什么呢?
- 能拖着到处移动的工具栏如何做,一定有分的
- 又有100分,来抢吧。。。
- 高兴!散分!
- 请问在delphi下怎么调用dos下面的程序后台运行?
- 关于Advstringgrid的一个问题
- 怎样获取用户双击或单击的是那个逻辑盘符?怎样在显示某个逻辑磁盘的内容之前得到该盘符,并进行拦截Win自动响应用户的功能(如显示或提
- 如何用Delphi实现Modem的语音通讯及文件传输功能?十万火急!
- dll怎样才能在NT中注册,让ASP调用?
unit ThreadUnit;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
TMyThread = class(TThread)
private
Number1Edit, Number2Edit: TEdit;
Number1, Number2: Integer;
Procedure ShowNumber;
protected
procedure Execute; override;
public
Constructor Create(Edit1, Edit2: TEdit);
End;
var
Form1: TForm1;
implementation
{$R *.DFM}
{ TThread }
constructor TMyThread.Create(Edit1, Edit2: TEdit);
begin
Number1Edit := Edit1;
Number2Edit := Edit2;
Number1 := 0;
Number2 := 0;
// inherited Create(False);
Resume;
end;
procedure TMyThread.Execute;
begin
inherited;
Form1.Canvas.TextOut(100, 100, 'Why');
ShowNumber;
end;
procedure TMyThread.ShowNumber;
var
i: Integer;
begin
For i := 1 to 100000 do
Begin
Number1Edit.Text := IntToStr(Number1);
Number2Edit.Text := IntToStr(Number2);
Form1.Edit1.Text := IntToStr(Number1);
Form1.Edit2.Text := IntToStr(Number2);
Inc(Number1);
Inc(Number2);
Form1.Canvas.TextOut(10, 10, IntToStr(Number1 + Number2));
End;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
TMyThread.Create(Edit1, Edit2);
end; end. 这个程序不能正常运行,总是执行不到
Execute,不知为什么,请各位帮忙查查错。
2) Execute中不要Inherited;
3)如果要对Form1操作要使用Synchronize.
4)你没有释放你创建的Thread对象,
。
你最好先看看delphi自己带的TThread的Demo程序:)
在Delphi5\Demos\Threads下。