delphi 为什么找不到文件?(50分)

  • 主题发起人 主题发起人 Langzii
  • 开始时间 开始时间
L

Langzii

Unregistered / Unconfirmed
GUEST, unregistred user!
我在用xxx.dcu文件安装组件时,delphi 3却常常得出没有xxx.pas的结果.why?
而且delphi3还总是找不到dcr文件,而事实上dcr文件就在同一目录之中!
 
这是因为Delphi编译有一个搜索路径,不在搜索路径下编译器找不到.
search path 设置:
菜单Tools->Enviroment Options->Library-> Library Path


 
我曾经用过DELPHI 3 ,在DELPHI3 中如果你有DCP文件,类似于工程文件Delphi4 中的BPL文件,
你可以通过菜单项COMPONENT/Install Componet向组件板添加组件,而用Install子菜单是无法进行安装的,
这也就是你所说的它找不到DCP文件.
如果没有DCP文件,你必须先利用你的DCR文件(它是一个工程文件,包括了所含有的被安装组件的PAS源文件);
编译后,生成你的DCP文件,并进行安装.而对DCR工程文件进行编译是,如果路径有误,或者找不到DCU文件,
就会提示PAS文件找不到,我记得BUILD一下似乎就能解决.或者设置以下查找路径.
目前我用的是DELPHI4,Delphi 4在安装组件时,如果你已经生成了BPL文件,你可以通过
菜单项COMPONENT/Install Componet向组件板添加组件,否则,你必须编译你的
组件工程文件(*.DPK),从而生成*.bpl文件,因此需要组件的源文件进行编译.
.DPK The source file listing the units contained in the package.
.DCP A binary image containing a package header
and the concatenation of all DCU files in the package,
including all symbol information required by the compiler.
A single DCP file is created for each package.
The base name for the DCP is the base name of the DPK source file.
You must have a .DCP file to build an application with packages.
.DCU A binary image for a unit file contained in a package.
One DCU is created, when necessary, for each unit file.
.BPL The runtime package.
This file is a Windows DLL with special Delphi-specific features.
The base name for the BPL is the base name of the DPK source file.
 
你把控件DCU,DCR都放到LIB目录下一定可以的,因为
DELPHI需要路径,或者你在装的时候指定路径
注意,不要有两个查找路径都有此构件的文件,那样也会有
问题.
 
没有原代码的东西不要装!!!
 
可以通过修改.dpk文件找到"掉"了的.dcr
如果没有dpk,可以用工具从dpl中生成一个 :)
 
谢谢两位的答案.但是问题还没有解决.举个例子:
我下载了一个calc组件,unzip之后,目录中有calc.dcr,calc.dcu和calc.dfm
三个文件(没有源文件).请问我如何安装.我原来的做法是在Install Component
时选择calc.dcu文件,但是delphi却说Fatal Error[0]:File not found:'e:/
delphi3/组件/calc/Calc.pas'.(在有些安装中,是说找不到dcr文件!)
而实际上根本就没有源文件提供.另外,我看了一
下搜索路径,calc所在目录已被delphi自动添加上去了.还有一次我装另一个组件
时, dcr文件和dcu文件明明在同一个目录里,delphi却找不到.
^^^^^^^what is dcr?
安装组件时,有dpk文件当然不在话下,打开即可.而在Install Component时,安装
pas或dcu文件也是可以的(有些组件我就是这么装上的),但为什么有时却不行呢?
这就是我的问题.
另外我记得自己是说安装dcu时找不到pas文件.
另外:为什么没源代码的东西别装?
 
新建一个dpk, 和你释放的那几个东西放在一个目录里, 然后把dcu加到这个dpk中
compile, install,... ok.
 
>>而在Install Component时,安装pas或dcu文件也是可以的
>>(有些组件我就是这么装上的),但为什么有时却不行呢

dcu格式在各个版本之间不同,因此如果Delphi认出非
当前版本的dcu,就会寻找.pas文件,如果没有,不可能安装成功。
 
dwwang的回答真是一句话惊醒梦中人.Thank you very much.但我的问题还有一
半没解决.这里又是一个例子:有shareware.pas(注意:是源文件哦)和shareware.dcr
(有谁能解释dcr文件的含义,我在很多地方都见到它的身影)readme中说只要用
shareware.pas安装就万事大吉了.但是我一试,delpi却提示找不到shareware.dcr.
而dcr文件是加不进dpk之中的.
另外:什么又是drf文件,刚刚找不到的又是它了.
最好大家在此弄个组件安装的FAQ出来,可以方便不少人.我可以再资助50分,只要谁
告诉我具体的(增加分数的)方法.
 
dcr -- 我认为是Delphi Component Resource 的缩写
实际上是一个图标,按照某个格式存储,作用就是给控件一个图标.
因此在绝大多数情况下即使出现找不到.dcr的错误,控件仍可以正常安装
不知道你是否注意到了?

.dcr文件找不到,一般是路径问题,最大的可能性是搜索路径已经过长,
你可以把原来的搜索路径删除一些试试.

我一般碰到这种情况,发现控件已经安装成功,只是用了Delphi的缺省
图标,因此也就不在乎了 :-)
 
看看有没有带.d16或.d32扩展名的文件?
如有,改成dcr即可。
 
谁说.dpk中加不进dcr?
dcr就是在dpk中定位的
如果出现找不到dcr的提示那是因为dpk中{$R XXXX.DCR}超出了delphi的搜索路径,
只要在{$R xxxx.dcr}里加上绝对路径就没问题了。
顺便说一句,在打开了dpk的对话框时按F12可以修改dpk中的代码(和form一样)
 
怎么个加法呢?至少Delphi创建package时,它可只要.pas和.dcu的.who can
tell me the way?
 
多人接受答案了。
 
后退
顶部