正在做的一个工程,delphi写的,做改造,原先的结构很乱,我想把常量的定义组织起来程序只用一个define, define里引用若干个subdefine,但是现在似乎有不少问题
首先就是uses, uses能不能继承, 好像如果windows, sysutils之类的系统级的, 就不行,但是自己的引入的就可以,另外,第一级引入就没问题,第二级就不行了,这也就意味着,我不能使用这种分层的define,因为,所有程序中使用的都是哦二级的,我对delphi不熟,因为项目才接触,问题可能比较弱,还望各位不吝赐教
首先就是uses, uses能不能继承, 好像如果windows, sysutils之类的系统级的, 就不行,但是自己的引入的就可以,另外,第一级引入就没问题,第二级就不行了,这也就意味着,我不能使用这种分层的define,因为,所有程序中使用的都是哦二级的,我对delphi不熟,因为项目才接触,问题可能比较弱,还望各位不吝赐教
Type TA = record
a:string;
b:integer;
end;type TB = record
a:PA
b:integer;
end;
BDefine,
CDefine, .. ;end.对于每个子define
他们完成相关功能集中的常亮与结构定义比如
unit ADefineinterface
uses GeneralDefine,..
const
...type
...然后对于系统共用的unit,我想把它放在GeneralDefine里,比如windows, sysutils..等等, 还有一些第三方库的引用,我们也希望放在一个单独的Thrdlibrary.pas里
比如
unit GeneralDefineinterfaceuses windows, sysutils, ...
unit ThrdLibrary.pas
interfaceuses ... , ... , ...
问题,上面已经提到,我就不赘述了
AA = 1;
BB = 2;而只能把const去掉
更麻烦的是,你还不能多写,比如你希望把uses和const 都放在inc里,那就必须是两个inc,更不要说还有var和type 而且,这些依然没有解决传递的问题,这就意味着,你必须自己处理诸多inc里的相互依赖问题,你不能再某个文件里只include某个type.inc,而不引用,包含其中所需常量的某个const.inc类似于
type aa : array[0..BB_LEN-1] of byte;就会遇到这样的问题。对于一个大型工程的Define来说,我需要很多的常量、类型定义,全局变量,uses,放在一个define里,谁都会眼晕,可是放在多个define里,还是没办法传递,唯一的解决办法,就是平行分割出n个独立功能集,彼此绝无依赖,但是这往往是不现实的,很简单的一个type
TArrayByte: array of byte;
我就要在不同的define里分别定义,那么如果我在一个程序文件里引用两个以上的define(这几乎是很自然的),那么我就要遇到类型重复定义的问题,好麻烦,而且,说实话{$include}这样的语法,和程序结构简直格格不入不知道delphi管理大工程是怎么做的,反正我觉得这样是不可以的,对自己和后来者,都是灾难,我就深有体会,因为这个项目本就是就有项目的改造
别用c/cpp的思路设计delphi,c/cpp的掰着扔可能会加快点儿编译速度,delphi的话没必要
曾經用過的 分成多個單元去定義的全局變量,公用函數,等等。。
定義多個接口,實現方法。 (解決多重繼承做準備) 定義一個類或多個,你愛吧 模仿JAVA中的靜態變量,用CLASS FUNCTION 返回屬性值。 (解決繼承問題) 好了,你現在需要的就把類引用過來吧。 (面向對象的解決方法) 當然也有其它辦法