我是一个Delphi 7项目,我将其他项目中使用的公共文件放入Search Path。我项目的不同版本需要使用不同版本的公共文件。我知道可以使用Windows环境变量,但是可以在.pas文件中定义变量搜索路径吗?或者,我可以开放解决方法。
例如:
const Version = '100';
答案 0 :(得分:2)
我知道可以使用Windows环境变量
或IDE自己的环境变量,因此您不必弄乱Windows环境。但是,是的,一般来说,您尝试做的只能使用环境变量来完成。
是否可以在.pas文件中定义变量搜索路径?
不,不是。这样的变量必须在OS / IDE层定义,而不是在代码层定义。
答案 1 :(得分:1)
如果你不要求太多,我将描述这是一个可能的解决方法。
假设包含按日期或所需内容区分的不同版本的文件夹。例如:Project_14-07-21, Project_15-07-21, Project_16-07-21
。
在这些文件夹中,您可以将公共文件夹放在包含不同版本的文件中。例如,在任何:Project_16-07-21\Common
此时,如果您放弃dof
文件中[版本信息]和[版本信息密钥]部分的信息,那么需要做的就是更改文件cfg
e {{ 1}}项目。
如何?用两个词来说:相对路径。
在文件dof
中搜索dof
以类似的方式更改:
SearchPath中= .. \ DCU; DCU; .. \普通的;常见; $(DELPHI)\库; $(DELPHI)\ JEDI \ JVCL \ lib中\ D7; $(DELPHI)\ JEDI \ JVCL \运行; $(DELPHI)\ JEDI \ JCL \ JCL \源\共同
在文件cfg中以类似的方式更改:
-U“.. \ DCU”;“DCU”;“.. \ Common”;“Common”;“C:\ Program Files(x86)\ Borland \ Delphi7 \ Lib”;“C:\ Program Files (86)\ Borland的\ Delphi7的\源\印” -I“.. \ DCU”;“DCU”;“.. \ Common”;“Common”;“C:\ Program Files(x86)\ Borland \ Delphi7 \ Lib”;“C:\ Program Files(x86) \ Borland的\ Delphi7的\来源\印” -R“.. \ DCU”;“DCU”;“.. \ Common”;“Common”;“C:\ Program Files(x86)\ Borland \ Delphi7 \ Lib”;“C:\ Program Files(x86) \ Borland的\ Delphi7的\源\印“
进行必要的修改,意图有用。
“Common”指各种版本项目的内部文件夹“Common”。
而不是“.. \ Common”你可以认为诸如硬文件在任何版本中都不会改变。
显然,文件dpr也会根据路径
而改变例如: .... JclSysUtils在'.. \ Common \ JclSysUtils.pas'中, .... uTest在'Common \ uTest.pas';
{$ R .. \ Common \ Project.tlb} {$ R .. \ Common \ Project.res}
此时你可以通过批量自动完成所有这一切。
作为礼貌的例子:我已经实现了通过拖动SearchPath
文件进行编译的批处理文件。
这些是我们理解其目的的名称:dpr
。通过在CC_IDE_Off.bat, CC_IDE_On.bat, CC_Debug_OnOff.bat
文件的文件夹中复制i file cfg e dof(调试与否),您可以编译完整的项目,即使没有将组件安装到IDE中,也可以使用这些批处理。