如何定义一个函数(5分)

  • 主题发起人 主题发起人 xxxfff_cn
  • 开始时间 开始时间
X

xxxfff_cn

Unregistered / Unconfirmed
GUEST, unregistred user!
如何定义一个函数,要在工程中任何地方都能访问。
 
建立一个公用单元,在其中定义该函数的声明。
然后在别的单元中引用该公用单元,即可访问该函数。
 
在public中定义,别的地方调用,引用他的unit就行了
 
呵呵,任何一个单元都可以,只是不要定义到类的函数中。定义到type ...class范围之外,其它需要用这个函数的地方只要use unit 就可以了。
当然,最好建立一个unit,免得系统载入不必要的东东。
 
我建立了一个unit
能不能来个实例好吗
 
[Error] Unit1.pas(18): Unsatisfied forward or external declaration: 'TForm1.mycom'
这是系统提示的错误
 
...你把它定义到最开头的地方吧。
 
有一个不用引用单元的方法。就是把函数定义到system.pas里面。这个system.pas单元DELPHI每一个您的工程单元都会自动加上,您也看不见,
 
同意2楼的做法!
1、做一个公共的单元Unit_Public (包含自定义函数)
2、在应用程序中Uses Unit_Public;
 
unit unit1;

interface
uses Sysutils, Windows;

function YourFunction(Param1,Param2: Integer): Boolean; //声明它

implementation

function YourFunction(Param1,Param2: Integer): Boolean; //写实现部分
begin
Result := Param1 > Param2;
end;

end.

那么你在其它单元中要调用这个YourFunction函数的话,首先在Uses语句中引用Unit1,再然后就可以直接调用了。

unit Unit2;

interface
....
implementation
uses Unit1;//这里引用你的包含YourFunction函数的单元

OK,在后面就可以直接使用YourFunction了
 
先谢谢各位了,]
但我又碰到问题
就是如果我要在公共函数中用到别的窗口中的东西如:edit1.text:='';
怎么办啊。

 
先引用所用窗口单元如ueses formplash.然后在写
edit1.text:=frmplash.edit1.text;
 
改变一下函数声明啊!
unit unit1;

interface
uses Sysutils, Windows, StdCtrls; //如果要增加其它的类,必须增加引用单元,可以查询帮助文件

function YourFunction(Param1,Param2: Integer[red]; AEdit: TEdit[/red]): Boolean; //声明它

implementation

function YourFunction(Param1,Param2: Integer[red]; AEdit: TEdit[/red]): Boolean; //写实现部分
begin
Result := Param1 > Param2;
[red]AEdit.Text := 'OK';[/red]
end;

end.

那么你在其它单元中要调用这个YourFunction函数的话,首先在Uses语句中引用Unit1,再然后就可以直接调用了。

unit Unit2;

interface
....
implementation
uses Unit1;//这里引用你的包含YourFunction函数的单元

调用的时候这样:
[red]YourFunction(1,2,edit1);[/red]

看看结果如何?
 
[Error] Unit2.pas(6): Undeclared identifier: 'TEdit'
这是错误提示。
 
顺便问一下,如何快速删除自定义函数的说明部分和实体部分,有没有什么快捷方式?
 
后退
顶部