用消息可以。
1 新建1个单元文件,在form上放置一个进度条。
自定义消息和消息拦截函数。
interface
const
ps_message=WM_USER+3456://
在form的
type
..
private
procedure getmysessage(var msg:Tmessage):message ps_message;
end;
procedure Tform1.getmysessage(var msg:Tmessage):message ps_message;
begin
//根据这2个信息传递过来的消息参数。
if (lparam>self.ps.position) and (lparam<=100) then
self.ps.position:=lparam;
if wparam=1 then
self.ps.position:=0;
end;
在formshow事件里写入
begin
self.ps.min:=0;//ps就是进度条
self.ps.max:=100;
end;
在其他单元里调用的时候
imp...
use unit1;
procedure xx;
var
const
ps_message=WM_User+3456;
begin
applicaton.createform(Tfomr1,form1);
form1.showmodal;
....
sendmessage(form1.handle,ps_message,0,1);//第一个lparam,第二个是Wparam
....
sendmessage(form1.handle.ps_message,32,0);//进度条到32%处
...
sendmessage(sendmessage(form1.handle.ps_message,100,0);//进度条到100%处
form1.free;
end;
//简单的思想就是用消息驱动form1上的进度条