程序运行中线程线程的奇怪问题
一个画线程序
程序运行,画布没反映,一片空白,
单步运行,画布上出现随机线条,和期望相符.
这是下面全部代码,请请点
procedure TForm1.Button1Click(Sender: TObject);
begin
MyThread:=TMyThread.Create(False,Canvas,Width,Height);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
MyThread.Terminate;
close;
end;
此处为线程相关代码:
constructor TMyThread.Create(IsSuspended: Boolean; Canvas: TCanvas;
Width, Height: Integer);
begin
inherited Create(IsSuspended);
Self.Suspended:=IsSuspended;
FCanvas:=Canvas;
FWidth:=Width;
FHeight:=Height;
end;
procedure TMyThread.Execute;
var
i:Integer;
begin
for i:=0 to 500 do
begin
GetRP;
GetRC;
Randoms;
end;
end;
procedure TMyThread.GetRC;
begin
Randomize;
FX1:=Random(FWidth);
FY1:=Random(FHeight);
Randomize;
FX2:=Random(FWidth);
FY2:=Random(FHeight);
end;
procedure TMyThread.GetRP;
begin
Randomize;
FColor:= Random($7FFFFFFF);
end;
procedure TMyThread.Randoms;
begin
FCanvas.Lock;
FCanvas.Pen.Color:=FColor;
FCanvas.MoveTo(FX1,FY1);
FCanvas.LineTo(FX2,FY2);
FCanvas.Unlock;
end;
多谢了
[解决办法]
可以正常运行啊。