高手指点:为什么运行出异常 (50分)

C

Cloutar

Unregistered / Unconfirmed
GUEST, unregistred user!
我写了一个多线程的演示程序
编译通过,能运行,只是一启动线程就报告异常∶存取错误
部分代码如下:
constructor TMyThread.Create(Col:TColor;XPos,YPos:integer);
begin
EColor:=Col;
X2:=XPos;
X1:=X2;
Y:=YPos;
inherited Create(true);
end;
procedure TMyThread.Execute;
begin
{ Place thread code here }
repeat
Step:=1;
X1:=X2;
X2:=X2+Step;
if X2<160 then
Step:=1
else
if X2>(Form1.ClientWidth-15)then
Step:=-1;
Synchronize(paint);//画一有色方块
Until Terminated;
end;
 
A

Another_eYes

Unregistered / Unconfirmed
GUEST, unregistred user!
if X2>(Form1.ClientWidth-15)then
这句放入synchronize中再试试
 
Y

yueyaren

Unregistered / Unconfirmed
GUEST, unregistred user!
Execute()中应该不能出现主线程中的VCL名称,同意Another_eYes的说法
 
C

Cloutar

Unregistered / Unconfirmed
GUEST, unregistred user!
多人接受答案了。
 
顶部