unit zy_thread;
interface
uses
Classes,sjcs;type
Tzythread = class(TThread)
private
{ Private declarations }
protected
procedure Execute; override;
end;implementation
uses sjcsu;procedure Tzythread.Execute;
begin
sjcsf.statusbar1.Panels[0].Text :='00000';
end;
end.
为什么我调用上面这个线程时,sjcsf窗体中的statusbar1状态栏无任何显示呢?
线程调用的代码为:
xc:=Tzythread.Create(false);
xc.Suspended :=false;
是调用的问题吗?
谢谢大家!!!
自己检查自己的代码吧
支持使用同步
去掉,其它没什么问题!可加
sjcsf.statusbar1.refresh;
只要上面这句
begin
with sjcsf.StatusBar1 do
begin
try
Canvas.Lock;
Panels[0].Text := '00000';
finally
Canvas.Unlock;
end;
end;
end;调用:
var
xc: TzyThread;
begin
xc := TzyThread.Create(True);
xc.Terminate;
xc.Resume;
xc.WaitFor;
xc.Free;
end;
var
TempThread: TzyThread;
begin
TempThread := TzyThread.Create(True);
TempThread.FreeOnTerminate := True;
TempThread.Resume;
end;
try
Canvas.Lock;
Panels[0].Text := '00000';
finally
Canvas.Unlock;
end;
每行代码都执行了,是不是只执行
Canvas.Lock;
Panels[0].Text := '00000';
才对呢?
赶快帮帮忙吧?!