在 Delphi 中,如何实现将外部定义的函数/过程在程序中引用(不是动态库引用)。(50分)

J

Jondona

Unregistered / Unconfirmed
GUEST, unregistred user!
在 Delphi 中,如何实现将外部定义的函数/过程名 在程序中引用(不是动态库引用)。
外部只是定义函数名,参数名,参数个数,函数主体在程序中实现。
例如在模块设计中,某一节点要调用一个函数,此处可定义函数名,参数个数,参数名,但函数
的实现在具体程序设计中。
 
前面加单元名称 如:system.copy(....)
 
不太懂你说的是什么意思,如果是外部单元中定义的函数/过程,那只要把这个单元加到你
你的调用所在的单元就可以了。
 
不劳而获
 
使用{$I filename}
更多的帮助请查delphi的帮助(关键字:$I)及相关内容。

给分给分
 
可能我说的不是很清楚,我的目的是:
在模块设计中,从 A -> B,中间需要调用一个函数 F(Integer,Char),只知道参数个数、
类型,把这个函数的信息写入脚本文件。
在程序实现中,如何将脚本文件中的信息取出,来定义一个函数,该函数的参数、类型的
都由脚本定义好,函数体可以按照功能需求自行编写。
 
不知道是你没说清,还是我看不懂,还是不明白你的意思?
难道你是想动态定义一个函数?
 
to Jondona:
TMD!!!!!!!!都跟你说了用{$I filename}你就是不信。是不是想耍赖不给分!
好就将具体用法说明如下:
1、建立一个文本文件Type.pas;内容为:function F( I: Integer; C: Char ): Booelan;
2、在函数体单元如:Unit1.pas的定义区内(interface和implementation之间)适当
位置加入“{$I Type.pas}”;

给分给分
 
to resun:
是动态定义一个函数,问题并为得到解决。
 
to Jondona:
动态定义的函数/过程不是很简单,你看看下面这个例子也许对你有用(我刚敲的,可能
有错,你自己改改吧,比较简单)
Type //声明两个过程类型
Exchange=procedure(Var x,y:integer);
GetRate=Function(x,y:double):double;

var Epro:Exchange;
Gpro:GetRate;

Procedure Exch(var x,y:integer);
var s:integer;
begin
if x>y then
begin
s:=x;
x:=y;
y:=s;
end;
end;

Function GetRa(x,y:double):double;
begin
if y<>0 then
result:=x/y;
else
result:=1;
end;

//////////////////
var
x,y:integer;
begin
x:=2;
y:=1;
Epro:=Exch;
Gpro:=Getra;

Epro(x,y);
X:=Gpro(x,y);

end;

 
顶部