CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

动态调用函数的问题??!!

楼主jtsy(冬冬)2001-07-02 15:02:46 在 Delphi / VCL组件开发及应用 提问

        我在String变量中保存了一个一个对象的函数名称,想在该对象中运行该函数,怎样实现??  
          实例代码如下:str1   :=   'Function1';  
                                    obj1.str1   ?????   能否运行,如果不能,怎样才能运行  
   
  是不是用指针???(在   C   语言中好像可以   ) 问题点数:20、回复次数:11Top

1 楼jtsy(冬冬)回复于 2001-07-02 15:03:50 得分 0

请回答???  
  Top

2 楼jtsy(冬冬)回复于 2001-07-02 15:04:16 得分 0

请回答???Top

3 楼jtsy(冬冬)回复于 2001-07-02 15:04:20 得分 0

请回答???Top

4 楼Jera(天~~~~塌下来我也不怕...)回复于 2001-07-02 15:20:43 得分 0

不能运行的Top

5 楼kuangning(郎之间)回复于 2001-07-02 15:26:30 得分 0

为什么要这样做?Top

6 楼jtsy(冬冬)回复于 2001-07-02 15:48:21 得分 0

谢谢你的参与。  
   
    举个例子:  
    有一个菜单配置表:  
                                      菜单一     对应的函数   menu1();  
                                      菜单二     对应的函数   menu2();  
                                              ..         ..  
        有一个编译好的dll调用此表,动态生成菜单项,而菜单对应的函数可能是后加的,即是另一个dll,在不需要重新编译生成菜单DLL的情况下、只要修改菜单表和实现的DLL即可完成工作。  
         
        有的用户水平很高,他们有能力改写具体实现的DLL,所以要实现这种功能了。  
   
        我记得C语言可以实现这种功能,具体忘了。好像用指针吧!  
   
        请大家多多帮忙。。  
  Top

7 楼Jera(天~~~~塌下来我也不怕...)回复于 2001-07-02 15:50:06 得分 5

FFf.OnMouseDown:=MyOnMouseDown;Top

8 楼li_zhifu(东北人)回复于 2001-07-02 15:54:58 得分 5

为什么不用Ini文件呢?比如说  
  [Root]  
  Count=2  
   
  Item1=菜单1  
  SubItem1=  
  Command1=Paint.exe  
   
  Item2=菜单2  
  SubItem2=SubItem2  
  Command2=  
   
  [SubItem2]  
  Count=1  
   
  Item1=子菜单1  
  SubItem1=  
  Command1=NotePad.exe  
   
  在程序中用递归的方式读取,并动态创建MenuItemTop

9 楼li_zhifu(东北人)回复于 2001-07-02 15:56:07 得分 0

我这里有一个很详细的例子,要的话请联系  
  lzfmail@sina.comTop

10 楼VictorG()回复于 2001-07-02 16:45:33 得分 5

 
  var  
      hLib:   integer;  
      hrun:function(param1:type1;param2:type2...):rtntype;stdcall;//你的过程或函数的格式  
  begin  
      hlib:=loadlibrary(pchar('yourlib.dll'));  
      if   hlib<>0   then  
          hrun:=GetProcAddress(win.hlib,'YourProcName');  
      if   @hrun<>nil   then   hrun;  
  end;  
   
  Top

11 楼zhengji(看雨飞)回复于 2001-07-02 17:05:19 得分 5

你的意思是不是   想动态改变   某事件的处理函数啊?  
   
      要是这样的话,   如   Jerry   所说,写个   处理函数   (仿照   delphi   自动添加   的代码)    
      然后     yourobject.onevent:=yourhandlefunction;     就行了,程序运行时也是可以随时更改的,很方便啊Top

相关问题

  • 动态函数调用
  • 函数与事件的动态调用、静态调用!
  • 动态连接库的调用,如下面的函数如何动态调用?
  • 函数调用
  • 函数调用
  • 调用函数
  • 函数调用
  • 函数调用
  • 函数调用?
  • 动态调用函数前如何检验该函数是否存在?

关键词

  • 函数
  • dll
  • hrun
  • 菜单
  • hlib
  • subitem
  • 动态
  • 运行
  • 实现
  • command

得分解答快速导航

  • 帖主:jtsy
  • Jera
  • li_zhifu
  • VictorG
  • zhengji

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo