![]() |
1
12
您可能可以将dbcommon.pas放在项目目录中。然后,它将与项目的其余部分一起编译。 |
![]() |
2
4
有关如何创建可以重新编译已修改VCL源的情况,请参阅前面的答案。不过,我想补充一点,您应该认真考虑使用“供应商分支”的SCM模式来管理变更控制系统中的变更。 简单来说(使用SVN作为参考):
然后您可以轻松地区分供应商的修订。但更重要的是(使用Subversion,可能还有其他的SCM系统),您还应该能够简单地将新的供应商源代码与“供应商库”分支合并(即自动合并),以便将供应商更改与您自己的修改结合起来。 这一切都比我刚才在一本优秀的O'Reilly书《颠覆版本控制》中描述的好得多。 但是请注意,由于版权问题,该书中提到的“loaddirs”实用程序不再受支持,因此更新“vendor drops”目前是一种手动操作,但这种情况很少发生,也不是主要的负担。 我们自己也在使用这种模式,尽管在VCL的情况下,我们没有在“供应商源”或“供应商库”中维护整个VCL源树的完整副本,而是只跟踪更改的和依赖的单元。对于由供应商分支机构管理的其他库,我们通常维护完整的副本,但认为这对于VCL来说不是必需的。 不过,我们只是实现了这个模式,所以我们可能还需要对VCL采取更全面的方法。 牛传染性胃肠炎病毒 |
![]() |
3
4
你可以,但通常你不需要。有时,重新编译VCL单元意味着重新编译所有剩余的VCL单元,要么是因为您更改了单元的接口,要么是因为编译器混淆了 认为 您已更改接口。重新编译VCL单元也排除了使用大多数运行时包的可能性,因为您不能重新编译Delphi的运行时包。 您可以使用运行时修补来代替重新编译。我用了这个方法 TNT Unicode controls 但是 Madshi 还提供了用自己的实现替换函数的方法。如果将dbcommon.getindexfororderby的实现复制到自己的单元中并进行修复,则可以使用此命令使用自己的单元修补VCL版本:
使用TNT Unicode库,查找
|
![]() |
4
2
我们在项目源树下有一个名为VCL的文件夹,我们将希望稍微修改的VCL源的副本放入其中。 你的例子很适合做同样的事情。 您需要修改项目的搜索路径,以便“您的”VCL文件夹在您的路径上比Delphi安装下的“源”文件夹更早。 您还可能发现,如果您复制一个VCL源单元并对其进行修改,则还必须将其他VCL源单元复制到“your”文件夹中,该文件夹可能是依赖项。 我们这样做的原因是我们希望构建没有编译器提示和警告。VCL源的某些部分没有提示/警告。 |
![]() |
5
2
“我很熟悉Jeff Atwood的文章,关于错误总是程序员的错误,但我相信我确实在delphi.pas文件中发现了一个错误。” 你在开玩笑吗?有了德尔菲,你总是先怪博兰:) 有点奇怪,去谷歌看看它是不是一个德尔福错误。只有当你找不到任何类似的报告,你的网站和检查你的代码一行一行。 重新安装Delphi之后,我必须在6(6)个位置修补原始的pas文件。在一个新的Delphi安装中出现了大量的bug,并且很容易被复制。德尔菲(我们都喜欢的那个)充满了虫子。围绕这一点有一个完整的历史。 有那么多人在释放外部补丁(例如 http://andy.jgknet.de/blog/?page_id=288 )博兰/监狱/戈格尔/埃巴卡德罗一直忽视他们。真奇怪,他们在发行版中加入了Fastmm。 不管怎样,我已经重新编译了这些PAS文件,现在我用修补后的文件替换了原来的DCU。 |
![]() |
6
1
很简单-是的。使用上述答案之一[由汤姆或康纳]。将dbcommon.pas复制到项目文件夹,而不是编辑原始文件。这会使其他项目和编译不受影响,因为它不会在路径上。 |
![]() |
7
1
您可以设置:
|
![]() |
Some1Else · 函数在Delphi中重新创建TForm 3 年前 |
![]() |
Agmcz · Delphi安卓库。so未安装(AAB) 3 年前 |
![]() |
nader · 如何使用delphi在web上提交表单 7 年前 |
![]() |
kwadratens · Delphi中的卡方分布函数代码 7 年前 |
|
user9672569 · 如何在完整的位图图像中绘制阴影效果? 7 年前 |
![]() |
mmmm · MSBuild(用于Delphi)Make-like功能 7 年前 |