曾经在一本书上看到说delphi自动use单元的时候是根据类的RTTI信息的UnitName来添加…… (50分)

  • 主题发起人 QQ989753
  • 开始时间
比如,ADOQuery一拖下来,一编译,就自动uses了DB,ADODB。
 
在 Unit A中重新声明Unit B类TB

TC = class(TB)

Unit A中若要使用原TB类型,就可以直接用TC
A: TC;

试试看,不知道行不行

 
>>试试看,不知道行不行
试过了,不行

看能不能有好的方法,我最希望的是像ADO一样的。
 
搬个凳子
 
谁来拿块黑板?
 
你的想法是不行的,如果可以,那Delphi的帮助里就不需要说明一些常量所在单元了,
其实也不麻烦,一般有源码或帮助都很轻松地能找到的。
 
To yunye:
好久没来一个说话的了,真是谢谢你。那么,我想知道,为什么TADOQuery组件一拖下来,
就Uses了两个单元,你可以看一下。至于“那Delphi的帮助里就不需要说明一些常量所在
单元了”我认为,Delphi认为你不会用到所有的常量单元,所以,它不帮你uses,这也是
合理的。但,当我用到我的一个组件,却不得不去又使用一个单元,自己去找,总是不能
让人满意的。
 
解决方法无限期待中.....

up
 
可以这样
Unit UNitB;
..
Type
TB=(amCust,amOffice,amCurr);
然后把TB引出到单元A
Unit UnitA;
...
Type
TB=UnitB.TB;
....
这样用户只要引用了UnitA,就可以使用TB类型
 
wr960204,能看到你留言,真让人高兴,要知道,好久没有个说话的了。我现在,没有机会
试一下,就先留个话,以让你和其他人知道,我一直在关心着这事呢。等试好了,有了个
好的做法,一定给你分。
 
晕了
:(
 
没啥希望了!
:(
 
帮你顶一下,先不让它沉下去先,我也想知道啊:)
 
我也遇到过这个问题,应该是可以解决的,参考一下Indy控件的源码。
 
谢谢你,alter。你提到的很可能是一个非常有用的信息。
 
怎么大家都不关心这个问题了呢?
 
兄弟,慢慢来。
 
不是别人不关心,我说的就是可以的。你试了没有
 
wr960204,我试过了,你说的方法是可以,但不能不说有一个缺陷,你想想,我既然在单元B中
使用了TB(TB=(amCust,amOffice,amCurr);),而不想把它放在TA中,一个主要的原因就是
它是公用的,系统多个地方会使用它,比如,好多个单元的好多个函数以它为参数类型,而
用你说的这种引用过来的方法,必须要重新指定一个名字,这样,很难保证别人(使用控件
的人)知道TA与TB其实就是一种类型,当然,如何,还有TC,TD……情况可能更糟糕。你说,
是不是有这样的问题?当然,还是得肯定,你提的确定是一种做法,还是可以用一下的。
我希望能像ADO组件那样的效果,其实你也知道,那样可能是最合理的。而且,这是一种方法,
只要知道了真正的做法,对我们以后做组件是非常的有好处。对于很久没有回话的事,表示
歉意。好了,暂说这么多,希望有了好的方法你能够赐于我。 :)
 

Similar threads

S
回复
0
查看
955
SUNSTONE的Delphi笔记
S
S
回复
0
查看
776
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
顶部