我有一个Unit1.pas
(例如)我有一个TService
,其中TIdTCPServer
和TIdUDPServer
组件已被删除,但我希望有这个活动在不同文件中实施的方法,例如UDP.pas
和TCP.pas
。是否有可能成为TService的一部分?怎么样?
答案 0 :(得分:3)
无法跨多个单元实施类。但是,事件处理程序可以在任何地方实现。
答案 1 :(得分:3)
我担心你不能在另一个单元中实现它,因为编译单元(.dcu)必须包含在其接口中声明的所有方法的实现。
但是可以在单独的文件中编写实现的某些部分,然后将它们(使用{$I
指令)包含在主单元中。
E.g。在Unit1.pas的实现部分中添加行
{$I TCP.pas}
{$I UDP.pas}
然后你在TCP.pas和UDP.pas中实现了一些方法(当然没有任何unit
或interface
或implementation
个关键字),就像你在里面写的一样Unit1.pas的implementation
部分。
当然所有方法(都是'local'和'included')必须在Unit1.pas的接口部分声明。
通常,要包含的文件具有扩展名.inc
。
可能您可能会检查您的设计,以便您没有逻辑上独立的块在一个类中。也许将服务逻辑与TCP和UDP逻辑(不同的类,因此不同的单元)分开将导致更优雅的设计。