10万火急,重分悬赏200分

wylove 2002-03-01 04:11:20
谁能够告诉我在Delphi中如何实现"宏代换",例如函数名称为一个字符串变量myfunc="function1",如何通过myfunc这个变量来调用function1这个函数?多谢!只要能够解答者,都给分!
...全文
100 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xys 2002-03-01
  • 打赏
  • 举报
回复
gz
光明山人 2002-03-01
  • 打赏
  • 举报
回复
以下两种情况可以:

1.是输出的函数:
按照Windows的方法就行了。
// 定义函数的地方
procedure MyProc( p: Integer ); export; stdcall;
begin
// do what you want to do
end;

exports
MyProc;

// 调用的地方
type
TMyProc = procedure(p: Integer);

procedure InvokeMyProc(
const sProcName: String; // 过程名
param: Integer // 参数
);
var
aProc: TMyProc;
begin
aProc := GetProcAddress( hInstance, PChar(sProcName) );
TMyProc(aProc)( param );
end;

// 使用范例
InvodeMyProc( 'MyProc', 1 );

2.是类对象中的published方法:
type
TMyMethod = procedure(p: Integer) of object;

procedure InvokeMyMethod(
Obj: TObject; // 对象
const MethodName: String; // 方法名
param: Integer // 参数
);
var
aMethod: TMethod;
begin
aMethod.Code := Obj.MethodAddress( MethodName );
aMethod.Data := Obj;
TMyMethod(aMethod)( param );
end;

//////////////////////////
其实,还有一种方法:
if ProcName='MyProc' then
MyProc( 100 );

当然,你不会愿意这么用的,我这样说你还会骂我呢。
zyp9702 2002-03-01
  • 打赏
  • 举报
回复
在DELPHI没有宏代换这个功能,你可以定义一个函数,用一个参数来表示你所要进行的功能.例如:FUNCTION AA(I:STRING)
当I为1时进行增加操作;
当I为2时进行删除操作;
等等.
Liujc 2002-03-01
  • 打赏
  • 举报
回复
type TMyfunc = function (参数定义) :返回值 ;

var
MyFunc :TMyfunc ;

function fun1...
begin
...
end ;
...
begin
myfunc := @fun1 ; //赋值
myfunc() ;//调用
end ;
yangkunjie 2002-03-01
  • 打赏
  • 举报
回复
20分?
quantum 2002-03-01
  • 打赏
  • 举报
回复
切......,你以为是VB啊?
内容概要:本文档聚焦于基于Peng-Robinson状态方程的化工热力学计算研究,系统介绍了利用Matlab代码实现纯组及多组系统的压缩因子(z因子)和逸度系数的计算方法,并进一步拓展至泡点压力与露点压力的数值求解。资源涵盖了从状态方程推导、非线性方程求根、相平衡条件判断到迭代算法实现的完整技术路线,提供了可运行的Matlab程序代码,有助于深入理解实际工程中物性参数的计算原理与实现过程; 适合人群:具备化工热力学基础知识和一定Matlab编程能力的高校学生、科研人员及工程技术人员,尤其适合从事过程系统模拟、油气田开发、精馏设计及相关领域研究的专业人士; 使用场景及目标:① 掌握Peng-Robinson方程在真实气体物性计算中的应用;② 实现多组混合体系的相平衡计算与泡/露点预测;③ 为Aspen Plus等商用流程模拟软件提供底层算法验证与教学参考;④ 支持科研论文复现、课程设计、毕业设计及工业过程优化中的热力学数据支撑需求; 阅读建议:建议读者结合经典化工热力学教材同步学习,重点理解立方型状态方程的根判别、迭代收敛策略与相平衡准则的数学表达,动手调试并运行所提供的Matlab代码以掌握算法细节,还可将其扩展应用于其他状态方程(如SRK、vdW)的对比析研究。

830

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧