Глобальная переменная “Application” не распознана

StackOverflow https://stackoverflow.com/questions/249655

  •  05-07-2019
  •  | 
  •  

Вопрос

Я работаю над большим проектом на Delphi 5.Сегодня, после объединения двух ветвей приложения вместе, один из сотен модулей, UnitMain (как вы догадываетесь, основной модуль формы), перестал распознавать приложение глобально.

Это довольно странная проблема - я мог бы заставить программу скомпилироваться, определив Application:Нажатие в UnitMain и установка этого параметра для приложения из нашего файла проекта .dpr, но это приводит к нарушению доступа, что неудивительно, учитывая, что приложение является чем-то особенным.

Я надеюсь, что кто-то сталкивался с такой же проблемой раньше или знает достаточно о внутренней работе 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;

Точная ошибка заключается в том, что компилятор не распознает приложение в этом модуле.Например, для приложения.ProcessMessages;вызовите, ошибка "Требуется тип объекта или класса".Ни у одного из других подразделений нет такой проблемы.

Это было полезно?

Решение

Я думаю, что наиболее вероятно, что у вас есть два символа под названием «Приложение». по объему, и тот из блока форм не является активным. Убедитесь, что блок Forms в списке использований указан после любого предыдущего блока, содержащего символ Application.

Но вам нужно предоставить больше информации. Точные сообщения об ошибках и т. Д.

Другие советы

Я рад видеть, что все работает сейчас, но я добавлю, что еще один способ решения таких проблем, особенно если вы не хотите переставлять свои предложения использования, - это префикс имени устройства к тому, что вы хотите использовать например,

Forms.Application.ProcessMessages;

Какие единицы измерения указаны в предложении uses в верхней части файла?Заявка поступает из блока "Формы".

например.

unit MyUnit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms;
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top