delphi 创建线程的问题 代码报错 5

functionTForm1.MyThreadFun(p:Pointer):Integer;stdcall;vari:Integer;pt2:TPoint;{因为指针参数... function TForm1.MyThreadFun(p: Pointer): Integer; stdcall;
var
i: Integer;
pt2: TPoint; {因为指针参数给的点随时都在变, 需用线程的局部变量存起来}
begin
try
pt2 := PPoint(p)^; {转换}
for i := 0 to 100000 do
begin
with Form1.Canvas do begin
Lock;
TextOut(pt2.X, pt2.Y, IntToStr(i));
Unlock;
end;
end;
except
on e:Exception do
begin
ShowMessage(e.Message);
end;
end;

Result := 0;
end;

procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
ID: DWORD;
begin
pt := Point(X, Y);
CreateThread(nil, 0, @TForm1.MyThreadFun, @pt, 0, ID);
end;
展开
 我来答
Sephil
2014-09-04 · 知道合伙人IT服务行家
Sephil
知道合伙人IT服务行家
采纳数:616 获赞数:1036
熟悉常用语言和数据库,爱写代码

向TA提问 私信TA
展开全部
MyThreadFunc用一般的成员函数是不行的,改成class方法即可,相当于静态方法
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式