有没可能把类内的函数在另一个Unit里实现?(50分)

  • 主题发起人 主题发起人 frag
  • 开始时间 开始时间
F

frag

Unregistered / Unconfirmed
GUEST, unregistred user!

type
TFrame1 = class(TFrame)
Label1: TLabel;
Edit1: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);


private
{ Private declarations }
procedure ShowTest();
public
{ Public declarations }
end;

然后不在这个unit里实现ShowTest,而是在UnitExternal实现,然后Use过来?

谢谢!
 
实现是可以的,声明为全局的,或者在其他类里公有的就行
反正这个函数是不属于这个类了
 
能不能给个例子?我总是编译不通过啊。
 
你是不是c++用多了?
^_^
 
完全可以,只要把你的代码写到一个.inc文件中然后在合适的位置{$I xxx.inc}就可以了
 
用inc不是办法吧。
 
Another_eYes 的方法可行,

不过也可以在另一个单元实现一个方法

procedure ShowTestProc(frm: TFrame);

然后在这个单元里面调用就可以了

ShowTestProc(Self)
 
我现在用的就是lich,的方法,改死我了,
改出的文件有3000行。。。。
好大啊。

Another_eYes, 时间:2004-5-27 12:27:29, ID:2630538
完全可以,只要把你的代码写到一个.inc文件中然后在合适的位置{$I xxx.inc}就可以了

这种方法编译一次后我把inc文件给删除了,再分发给别人继续开发,是否还能编译成功?

 
这种方法编译一次后我把inc文件给删除了,再分发给别人继续开发,是否还能编译成功?
你直接把*.DCU给别人,然后把不包含*.inc的文件给别人当作使用帮助文档就好了,
 
Delphi中的Virtual方法不就是在其子类中才实现吗
 
完全可以,用预编译指令
{$I 单元名}
 
写一个你的Unit,包含你要的函数:Unit1.pas
然后修改下面的代码:
type
TFrame1 = class(TFrame)
Label1: TLabel;
Edit1: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);


private
{ Private declarations }
procedure ShowTest();
public
{ Public declarations }
end;
...
procedure ShowText();
begin
Unit1.ShowText();
end;
这样就可以了.很简单,只是提供一个托管而已.
 
呵呵,有趣。[:D]
 
后退
顶部