情非得已,不得不再次破费,这个问题你清楚了没有?(50分)

  • 主题发起人 主题发起人 QQ989753
  • 开始时间 开始时间
Q

QQ989753

Unregistered / Unconfirmed
GUEST, unregistred user!
问题描述如下:
我有一个单元文件A.pas,另有一个工程B.dpr,工程内有单元文件C.pas,我在B工程内的C单元中想使用A单元.
一种方法是,我把A添加到B工程中,在C单元中写上USES A.(这也是最常用的办法,我就不多说了)
另一个方法是,直接在B工程的单元文件C中写,USES A,同时,把A.pas单元文件拷到工程目录下(使DELPHI可以搜索到该文件),这两种方法的区别是什么?
如果你想说,没区别的话,那你就不用说了.因为,没区别好像是不可能的.因为,我手头上就有这样的一个单元,你采用第二种方法,就可以正常使用.采用第一种方法,就编译不通过.
*****我提的问题我总是十分关注,不用担心结账问题*******
*****我提的问题我总是十分关注,不用担心结账问题*******
*****我提的问题我总是十分关注,不用担心结账问题*******
 
不应该呀,怎么会?
 
可惜我没有自己的主页空间,要不,我就上载这个单元文件.没有理由不相信我的.
可以排除DELPHI的原因和机器的原因.
 
我也认为区别。
唯一可能的区别,就是编译的先后顺序和全局变量可能的冲突
 
>>采用第一种方法,就编译不通过.
什么编译提示呢?
 
错误信息:缺少对象或类类型.
 
其实他们的区别也就是
加入工程就不需要设置此单元的搜索目录

 
TO 52free:
你的说法也是我最开始所持有的想法.因为,你打开文件一看,它无非就是那么多的信息.
可是,如果是这样的话,那么,我用两种方式却有不同的结果,这又怎么解释呢?
 
uses a in 'a.pas';

你没有在project里添加当然他不认为你是他的文件了。

看看帮助里关于uses的说明吧。 :)
In the uses clause of a program or library, any unit name may be followed by the reserved word in and the name of a source file, with or without a directory path, in single quotation marks; directory paths can be absolute or relative. Examples:
 
大家继续呀.我还是理解不了这里边的种种玄机.
 
对于第一种错误,你可能是在引用单元的时候写法错误。你可以采取这种办法,在工程中
添加了A以后,在工程的C单元中加个BUTTON1,在按扭的点击事件中写上A.SHOW。然后进行
语法检查,这时检查出问题后点对话框的YES,该写的代码程序会自动添加。
 
呵呵
快给我50分
我来解释
 
to
QQ989753
把 A.DCU 拷贝到当前目录下,包你没事
 
1个Unit有2个Uses,
看你把引用放在那个Uses里了?
 
十分感谢大家关注此问题.
TO 蓝衣人儿:A单元均是不可见类,不可能写出A.show这样的写法.
另外,我是选定工程,添加单元,也就是说,是由系统帮我做的工作,应该不会错.
TO 魔鬼大师:只要你回答的正确,我保证给你分.可是,就凭你这次的发言,呵呵,分的没有,命有一条.
TO delp:不知道你想做什么.
出错的原因不在USES上,因为,我就是不写USES,也一样出错.
TO ALL:忘了告诉大家,A单元是用DELPHI导入类型导进来的单元.


 
没有出错的代吗码吗?
 
一、A单元是否在B工程的目录下?如果不在,请设置搜索路径。
二、一个单元里有两个Uses,自动添加会加在第二个里面。你手动加是加在什么地方?
 
把 B.dpr 的内容贴出来看看,
还有 C.pas 中关于 引用 A.pas 的 uses 语句是在什么地方?!如方便也请贴出来看看
 
兄弟,,你这个问题,不应该哦,,,

假设你的 b.dpr c.pas,是同时保存在一个 d:/data 目录下的,

a.pas 在别的目录比如 d:/data/common 下,
如果你在 b.dpr 中加入 a.pas, ,编辑环境中可以认倒 a.pas 中的元了吧?
你如果要编译,是不是要出错啊?那你在你 b.dpr 工程文件的' Options..'选项里面的,

Directories/Conditionals 页里的 Search Path
加了你的 d:/data/common 了吗?就算你把 a.pas 拷到了 d:/data 下,,你也得在 Search Path 里把 d:/data 径给加上,,这样子编译器顺利地找到文件。


还有你的 a 单元既然是从类型导进来的单元,你应该先看看你的A单元本身有没有问题,
不要太相信 delphi 的导入,
我自己写了过一个COM Server,, 我直接用 CreateOleObject 调用没有问题,,
可是我用 Delphi 的类型导入时发现我定义的东西Com Server 变得乱七八糟了,,
当然这一方面是我代码的原因,,但另一方面也不排除导入时的处理有些问题。。。
 
感谢大家的关心.我本来以为这个问题要不了了之了呢.
来自:gaolin16, 时间:2003-7-16 13:18:00, ID:2033199
一、A单元是否在B工程的目录下?如果不在,请设置搜索路径。
********我的A单元就在B的工程目录下.**********
二、一个单元里有两个Uses,自动添加会加在第二个里面。你手动加是加在什么地方?
************写在哪个地方都是一样的效果************
来自:zyxxyz, 时间:2003-7-16 13:30:00, ID:2033259
把 B.dpr 的内容贴出来看看,
还有 C.pas 中关于 引用 A.pas 的 uses 语句是在什么地方?!如方便也请贴出来看看
***********一个单元代码有2M多,我怕大家再不开这页了******************
TO darnis:不应与搜索路径有关,因为,我使用USES方法是可以的,相反,我加到工程中,反而不行.
至于导出的单元有问题,这个我也想过.可是,我想不通的是,为什么USES就能使用的单元,加到工程中就有问题.甚至在工程中我从不使用它都不行.

还请大家关注.



 
后退
顶部