Tag: delphi 2007

发布的接口属性错误和解决方法

我写了一组通过发布的接口属性相互链接的组件。 他们被注册并安装在一个devise包中。 在Delphi中使用已发布的接口属性并不常见,因此毫不奇怪,似乎并不能很好地工作。 当组件驻留在同一个表单上时它工作正常,但是不同表单上的组件之间的接口属性链接会导致问题。 与另一个表单上组件的对象链接不同,接口链接似乎无法被IDE识别。 我的意思是最好用一个例子来描述,当你在IDE中打开两个窗体,并在它们之间有组件之间的链接,然后尝试切换到窗体视图为文本(Alt + F12)将导致IDE正确地抱怨: Module 'UnitXXX.pas' has open descendents or linked modules. Cannot close. 但是,如果属性是一个接口,那么这不会发生,反而会发生链接被切断(当使用Notification机制来清除引用时,这是最好的情况,否则你会留下一个无效的指针) 另一个问题,可能是由于相同的错误造成的结果是,当您在IDE中打开一个项目时,表单将被重新打开的顺序是未定义的,因此IDE可以尝试打开一个窗体,其中包含组件的接口链接另一种forms,但其他forms尚未重新创build。 所以这有效地导致AV或切断的链接。 早在90年代,当我使用Datasets和Datasources我记得类似的问题与表单之间的链接消失,所以这有些类似。 作为临时替代方法,我添加了重复的发布属性,对于每个接口属性,我添加了另一个声明为TComponent 。 这使delphi意识到forms之间有联系,但至less可以说是一个丑陋的解决方法。 所以我想知道我能做些什么来解决这个问题? 这是一个IDE错误,可能无法直接解决,但也许我可以重写某些东西或以其他方式挂接到stream式机制,以更有效地解决此问题。 我从来没有深入到stream式机制,但我怀疑Fixup机制应该处理这个问题。 有一个csFixups所以我希望有一个解决方法是可能的。 编辑:使用D2007 。 更新: 新的更新可重复的例子上传到http://www.filedropper.com/fixupbugproject2 添加了property ComponentReference: TComponent以便于比较和跟踪接口与组件stream。 我把问题缩小到汇编层面,这有点超出我的深度。 在它调用的classes单位过程GlobalFixupReferences中: (GetOrdProp(FInstance, FPropInfo) <> 0) 最终执行: function TInterfacedComponent.GetInterfaceReference: IInterface; begin // uncomment the code bellow to avoid exception […]

Delphi 2006-2010错误:“无法创build文件C:\ Users \ Admin \ AppData \ Local \ Temp \ EditorLineEnds.ttr”

我安装了Delphi 2007后出现错误(编辑:这个问题发生在2006年至2010年的所有delphi版本),我无法弄清楚,从来没有见过。 重新启动后,我可以启动程序没有任何问题,但如果我要closures程序,并重新启动它会给我以下错误: “无法创build文件C:\ Users \ Admin \ AppData \ Local \ Temp \ EditorLineEnds.ttr”。 该进程不能访问该文件,因为正在被另一个进程使用。“ 除非我重新启动,否则“系统”在这个文件上有句柄,不能被清除。 我也可以通过在启动程序之前重命名文件来纠正问题。 我已经尝试重新安装程序没有运气。 安装的版本:CodeGear™Delphi®2007 forWin32®R2版本11.0.2902.10471。 操作系统:Windows 7 Pro 64bit 更新08/14 13:35 EDT尝试了以下解决scheme,但仍然存在相同的文件locking问题: 将临时目录重命名为我知道具有完全安全权限的目录。 当启动Delphi时,文件将会在这个目录中被创build,但是EditorLineEnds.ttr仍然会被SYSTEMlocking,并阻止我重新启动。 卸载了以下安全更新KB2982791和KB2976897,但这并没有解决问题。 我现在已经取消了Windows更新,并尝试卸载8/13的所有安全修补程序。 完全卸载Delphi并重新安装。 重新安装一切后仍然会出现问题。 我将尝试从头重新安装Windows,并在Windows更新之前安装Delphi,以查看更新是否是真正的原因。 我现在的解决方法是在启动Delphi之前重命名EditorLineEnds.ttr。

Delphi语言function列表和引入/弃用它们的版本

在开始之前,我想指出的是,我真诚地,真诚地通过谷歌search了这样一个事实,并且一直无法find一个。 我要求(对于我正在开发的一个项目)列出所有Delphi(2007年到最新发布的版本,我不再支持任何比2007年更早的版本)“语言function”,以及它们被引入的版本和在适用的情况下)弃用,改进或删除。 在Stack Overflow之前,我已经注意到类似的问题,尽pipe其中大多数是以“哪个特性最好”的formsexpression的,并且被认为是不合适的。 如果有人知道这样的清单(或者有足够的空余时间来编译),我将非常感激。 接受的答案将包含链接到这样的列表,或列表本身。