向大家请教一个回调函数的问题 本帖最后由 hnityd 于 2014-08-25 11:40:06 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 是不是声明不一致,一个是const ,一个没有? type TBackupProgressFunc = procedure(const ARemaining, APageCount: Int64);下面这样调用是没问题的,设置进度条就出错了procedure BackupProgress(const ARemaining, APageCount: Int64);这个定义和回调函数的定义一致procedure TFrmMain.setProgress(ARemaining, APageCount: Int64);这个的定义实际上是: TBackupProgressFunc = procedure(const ARemaining, APageCount: Int64) of object;两个是有区别的,你可以在procedure BackupProgress(const ARemaining, APageCount: Int64);begin FrmMain.setProgress(...);这样调用一次就可以了end; 这样写应该不报错procedure TFrmMain.setProgress(ARemaining, APageCount: Int64);begin TProgressBar(TForm(FindGloabalComponet('frmMain')).findcomponent('TProgressBar1')).Percent := 100 * (APageCount - ARemaining) div APageCount;end; procedure BackupProgress(const ARemaining, APageCount: Int64);begin FrmMain.setProgress(...);这样调用一次就可以了end;同意上上楼的,因为我一直就这样用。 求一图形控件,有那位知道请告诉小弟,不胜感激!(在线等待!!!) 请教一个字符串函数 紧急!如何制作无窗体的ocx控件 《根据数据库表中记录自动构造一棵结构树的一种高效算法》的原程序怎么用? 263邮箱有重大隐患?来自263的回应 怎么固定Delphi的控件 delphi8 如何调用 C$web services 求解 ongetcellparams事件与onDrawcolumncell同时使用的问题! maskedit好难搞耶。。。。 用debug清除cmos 密码的命令是那个? 如何调用dll delphi mscomm控件使用
TBackupProgressFunc = procedure(const ARemaining, APageCount: Int64);下面这样调用是没问题的,设置进度条就出错了
procedure BackupProgress(const ARemaining, APageCount: Int64);
这个定义和回调函数的定义一致
procedure TFrmMain.setProgress(ARemaining, APageCount: Int64);
这个的定义实际上是:
TBackupProgressFunc = procedure(const ARemaining, APageCount: Int64) of object;
两个是有区别的,你可以在
procedure BackupProgress(const ARemaining, APageCount: Int64);
begin
FrmMain.setProgress(...);这样调用一次就可以了
end;
这样写应该不报错procedure TFrmMain.setProgress(ARemaining, APageCount: Int64);
begin
TProgressBar(TForm(FindGloabalComponet('frmMain')).findcomponent('TProgressBar1')).Percent := 100 * (APageCount - ARemaining) div APageCount;
end;
begin
FrmMain.setProgress(...);这样调用一次就可以了
end;同意上上楼的,因为我一直就这样用。