English 中文(简体)
我可以反驳。 Delphi IDE使用的PAS文档?
原标题:Can I recompile the .PAS files used by the Delphi IDE?
  • 时间:2009-10-07 19:31:43
  •  标签:

我熟悉。 作者Jeff Atwood的文章讲述了错误总是谁是方案人,但我认为我确实和确实在Delphi .pas的档案中找到了ug。

具体来说,使用Delphi的2007年电离层电离层的Im,这一错误出现在银河口的955线上。

C:program filecodegear adroom5.0sourceWin32dbDBCommon.pas

该法典是:

...
  FieldIndex := StrToInt(Token);
  if DataSet.FieldCount >= FieldIndex then
    LastField := DataSet.Fields[FieldIndex-1].FieldName else
...

如果“象征性”的价值为零,那么我们就试图获得数据Set指数-1。 外地,因此形成了一份清单,以摆脱约束错误。

这一错误没有向用户提出,因为这一错误是在达到高位之前处理的,但令人非常担心的是,每当发生这种情况时,都会发生错开。

我可以“没有这种例外类型”,但排除约束性错误的指数非常普遍,我不想普遍忽视这些错误。

造成Index地区为零的情况是,你有一份按英文字母顺序排列的电子选举声明,如:

ORDER BY
  CASE WHEN FIELD1 = FIELD3 THEN 1 ELSE 2 END
 ,CASE WHEN FIELD2 = FIELD4 THEN 1 ELSE 2 END

我可以固定在非行的巴塞布,但德尔菲不会重组,我的改变不会产生效果。 如果我重新命名。 外交部档案只是抱怨说,无法找到“DBCommon.dcu”。

因此,我的问题(最后是)是:我能否与我的固定点相容,如果是,如何?

最佳回答

你也许会 d。 帕斯项目目录。 然后与该项目的其他部分一起汇编。

问题回答

参见以往关于如何造成你可以重新汇编经修改的《维也纳条约法公约》来源的情况的答复。 不过,我还要指出,你认真考虑利用“供应商处”SCM模式来管理你在变革控制制度方面的改变。

简言之(使用SVN作为参考):

  • 创建原始供应商提供的“供应商来源”复印件。 这是你的“原始”参考资料。

  • 创立一个代表这一原始文本的分支(例如,《维也纳条约法公约》2009年版的“2009年”版)

  • 还将一个分处建成一个单独的“图书馆”。 THIS是您在项目中应参考的图书馆的复印件。

  • 对供应商的任何改动均在“供应商图书馆”处进行。

  • 当供应商提供新版本的图书馆时,你将新版本的图书馆核对到“供应商来源”项目,并为新版本设立一个新的分支。

然后,你可以轻易分散对供应商的修订。 但更重要的是(与SubVersion公司,可能还有SCM系统),你也应当能够简单地将新的供应商(即自动)与你的“供应商图书馆”分行合并,以方便地将供应商的变动与你自己的修改结合起来。

这比我在出色的《乌勒里》一书中所说的“控制潜伏器”要好得多。

然而,由于版权问题,该书中提到的“载荷”用途已不再得到支持,因此,更新“供应商退款”目前是一种手工操作,但这种操作只是偶尔发生的,而不是主要的负担。

我们正在使用这种模式,尽管就《世界森林公约》而言,我们没有在我们的“供应商来源”或“供应商图书馆”中保存整个《世界森林公约》原始树木的完整副本,而只是轨道上的变化和附属单位。 对于在供应商处管理的其他图书馆,我们通常保持完整的副本,但决定这对《维也纳条约法公约》是必要的。

然而,我们只是刚刚实施了这种模式,因此,我们可能决定,我们也需要与《维也纳条约法公约》采取更全面的做法。

iii

你可以,但你常常不得不这样做。 有时,与世界钻石协会的一个单位合并意味着对世界钻石协会所有单位的其余部分进行重新核对,要么是因为你改变了一个单位的接口,要么是因为汇编者混淆了,thinks,你会改变接口。 重组科索沃渔业局的一个单位也排除了使用大部分运行时间的包裹的可能性,因为你可以更换德尔菲的运行时间包。

你们不是重复工作,而是能够使用临时派任。 I ve在TNT Unicode Control,但Madshi也提供了用自己的执行替代功能的途径。 如果你复制行文的话。 GetIndexForOrder 你可以把这一指挥用成你自己的单位,把《维也纳条约法公约》文本与你自己做成:

var
  Old_GetIndexForOrderBy: Pointer;

HookCode(@DBCommon.GetIndexForOrderBy,
         @Fixed_GetIndexForOrderBy,
         Old_GetIndexForOrderBy,
         0);

在Tnt Unicode的图书馆,在TntSystem单位发现。 它不是公开的,因此,你要么需要在单位接口内宣布,要么将其复制到自己的单位。 然后,你可以称之为上文马德西法典:

var
  Old_GetIndexForOrderBy_Data: TOverwrittenData;

OverwriteProcedure(@DBCommon.GetIndexForOrderBy,
                   @Fixed_GetIndexForOrderBy,
                   @Old_GetIndexForOrderBy_Data);

We have a folder under our project source tree called VCL, into which we place copies of the VCL source that we wish to modify slightly. Your example is a good candidate for doing the same thing. You will need to modify the search path for your project so that "your" VCL folder is earlier on your path than the "Source" folders under your Delphi installation. You may also find that if you copy one VCL source unit out and modify it, you will have to also copy other VCL source units out into "your" folder which may be dependencies.

我们之所以这样做,是因为我们希望我们的建筑有零编织物和警告。 武革阵的某些部分来源不是免费的。

“我熟悉杰夫·阿特伍德关于错误总是谁是方案犯的过错的文章,但我认为我确实而且确实在德尔菲·帕斯档案中找到了ug”。

Are you joking me? With Delphi you always blame Borland first :) Something is weird, go Google it and see if it is a Delphi bug. Only if cannot find any similar reports you site down and check your code line by line.

After I reinstall Delphi I have to patch the original PAS files in 6 (six) places. There are tons of bugs that appear on a fresh Delphi installation and can be easily reproduced. Delphi (the one that we all love) is full of bugs. There is an entire history created around this. There are so many people releasing external patches (such as http://andy.jgknet.de/blog/?page_id=288) and Borland/Imprise/GoGear/Embarcadero keep ignoring them. It is a true wonder they included FastMM in their release.

无论如何,我重新编篡了这些考绩制度的档案,现在我用发送文件取代原来的新闻中心。

简言之,是的。 采用上述答复之一[By Tom或Connor]。 页: 1 这使其他项目和汇编不受影响,因为它走了路。

You can set: DataSetProvider.Option.poRetainServerOrder = True





相关问题
热门标签