线程里面主要代码如下:
constructor showpic.create(im_name: timage; beg_sno: integer; end_sno: integer; sleep_time: integer);
begin inherited Create(false); begsno := beg_sno;
endsno := end_sno;
sleeptime := sleep_time;
gb_bool := true;
im := im_name;
FreeOnTerminate := true;
gb_bool := true;
end;procedure showpic.Execute;
begin
xianshipic();
end;procedure showpic.xianshipic;
var
i: integer;
beg_sno: integer;
end_sno: integer;
i_m: timage;
sleep_time: integer;
begin
{ Place thread code here }
beg_sno := begsno;
end_sno := endsno;
sleep_time := sleeptime;
//gb_bool := true;
while gb_bool do
begin for i := beg_sno to end_sno do
begin
im.Picture.LoadFromFile('f:\test\新建文件夹\bmp\' + inttostr(i) + '.bmp');
sleep(sleep_time);
application.ProcessMessages;
end; end;
end;
程序调用命令如下: showpic.create(image1, 8000, 8021, 20);
showpic.create(image2, 8000, 8021, 20);
但不知道为什么,在Windows2003 执行时老是报“ntdll.dll”错误,不知道该如何处理,请各位大侠帮帮忙,谢谢!!!
showpic = class(TThread)
......
private
FIndex : Integer;
......
end;procedure showpic.Execute;
var
beg_sno: integer;
end_sno: integer;
i_m: timage;
sleep_time: integer;
begin
beg_sno := begsno;
end_sno := endsno;
sleep_time := sleeptime;
//gb_bool := true;
while not Terminated and gb_bool do
begin
for FIndex := beg_sno to end_sno do
begin
Synchronize(xianshipic);
sleep(sleep_time);
end;
end;
end;procedure showpic.xianshipic;
begin
im.Picture.LoadFromFile('f:\test\新建文件夹\bmp\' + inttostr(FIndex) + '.bmp');
end;