社区
Delphi
帖子详情
10万火急,重分悬赏100分
wylove
2002-03-01 04:12:16
谁能够告诉我在Delphi中如何实现"宏代换",例如函数名称为一个字符串变量myfunc="function1",如何通过myfunc这个变量来调用function1这个函数?多谢!只要能够解答者,都给分!
...全文
90
7
打赏
收藏
10万火急,重分悬赏100分
谁能够告诉我在Delphi中如何实现"宏代换",例如函数名称为一个字符串变量myfunc="function1",如何通过myfunc这个变量来调用function1这个函数?多谢!只要能够解答者,都给分!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
光明山人
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时进行删除操作;
等等.
fontain
2002-03-01
打赏
举报
回复
是啊,函数指针也不是静态的阿,先说清楚你要做什么吧
wylove
2002-03-01
打赏
举报
回复
sorry,我的意思是函数的名称是动态的。希望各位大虾能清楚!
小伍老师
2002-03-01
打赏
举报
回复
function AAAA(string)
if string='myfunc' then
call Function1()
end if
if string='myfunb' then
call function2()
end if
end function
tigerfox
2002-03-01
打赏
举报
回复
哈哈,楼上先说了函数指针也.
dancemaple
2002-03-01
打赏
举报
回复
可以用函数类型来实现
type
TMyFunc = function() // 后面要跟参数,和你的function1一致
...
var
MyFunc: TMyFunc;
MyFunc := function1;
以后就可以用myfunc来调用function1了
互联网摸鱼日报(2022-11-
10
)
中国卓越技术团队访谈录(2022 年第四季)基于深度学习的ORM自动化及代码生成实践Google Cloud + Mandiant: 未来安全合规的现代化变革...星汉未来全国开发者
悬赏
计划AI时代,图神经网络将走向何方?李彦宏:过去一年
萧何月下追韩信时候,韩信对项羽的这个评价是否属实
萧何月下追韩信时候,韩信对项羽的这个评价是否属实
悬赏
分
:15 - 解决时间:2008-3-21 18:38萧何月下追韩信时候,韩信说:“我个人也认为您不如他,不过我曾经是项羽的手下,我来给您讲讲他的为人。项羽这个人英雄...
世界名着
10
0
部简介
01、傲慢与偏见 02、孤星血泪 03、雾都孤儿 04、唐·吉诃德 05、安娜·卡列尼娜 06、飘 ...
10
、基督山恩仇记 11、童 年 12、这里的黎明静悄悄 13、钢铁是怎样炼成的
我在CSDN参与的3000个帖子
2:
10
0
分
急求,随机输出十个小写字母,但是,要求这十个字母不相同 3:求Sn=a+aa+aaa+…+aaa…a(n个a)之值 4:数组题 望高手帮忙! 5:呵呵,来推荐一下我的网站,本站提供大量当今流行的免费的音乐和免费电影,...
世界名著
10
0
部简介
01、傲慢与偏见 02、孤星血泪 03、雾都孤儿 04、唐·吉诃德 05、安娜·卡列尼娜 06、飘 07、简·爱 08、悲惨世界 09、茶花女
10
、基督山恩仇记 11、童 年 12、这里的黎明静悄悄 13、钢铁是怎样炼成的 ...
Delphi
5,927
社区成员
262,932
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章