当前位置:  开发笔记 > 开发工具 > 正文

"应用程序"全局变量无法识别

如何解决《"应用程序"全局变量无法识别》经验,为你挑选了2个好方法。

我在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; 调用,错误是"需要对象或类类型".没有其他单位有这个问题.



1> Barry Kelly..:

我认为很可能你在范围内有两个名为"Application"的符号,而Forms表单元中的那个符号不是活动符号.确保使用列表中的表单单元位于包含名为Application的符号的任何先前单元之后.

但是,您需要提供更多信息.确切的错误消息等


另一种选择是显式引用Forms.Application

2> Mike Sutton..:

我很高兴看到现在每个人都在工作,但我会添加另一种方法来解决这些问题,特别是如果你不想重新安排你的使用条款,就是在单位名称前加上你想要使用的任何东西,例如.

Forms.Application.ProcessMessages;

推荐阅读
个性2402852463
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有