我在Delphi 5中开展了一个大型项目.今天,在将应用程序的两个分支合并在一起之后,数百个单元中的一个,UnitMain(主要形式的单元,你猜)会停止识别应用程序全局.
这是一个相当奇怪的问题 - 我可以通过在UnitMain中定义Application:TApplication,并从我们的.dpr项目文件中将其设置为Application来获得编译程序,但这会导致访问冲突,这不是很多令人惊讶的应用是它的特殊之处.
我希望有人之前遇到过同样的问题,或者对Delphi VCL的内部工作有足够的了解来帮助我.
unit UnitMain; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Menus, ComCtrls, StdCtrls, cxButtons, ExtCtrls, IniFiles, ShellAPI, LMDControl, LMDBaseControl, LMDBaseGraphicControl, LMDGraphicControl, LMDScrollText, cxControls, cxContainer, cxListBox, Psock, NMFtp, db, DBTables, FileCtrl, Configs, cxHint, DSetFunc, OleCtrls, DsInformation, InterAppComm, ActnList, ADODB, OleServer, CRAXDRT_TLB;
确切的错误是编译器无法识别此单元中的Application.例如,对于Application.ProcessMessages; 调用,错误是"需要对象或类类型".没有其他单位有这个问题.
我认为很可能你在范围内有两个名为"Application"的符号,而Forms表单元中的那个符号不是活动符号.确保使用列表中的表单单元位于包含名为Application的符号的任何先前单元之后.
但是,您需要提供更多信息.确切的错误消息等
我很高兴看到现在每个人都在工作,但我会添加另一种方法来解决这些问题,特别是如果你不想重新安排你的使用条款,就是在单位名称前加上你想要使用的任何东西,例如.
Forms.Application.ProcessMessages;