Frage

Ich arbeite an einem großen Projekt in Delphi 5. Heute, nach zusammen zwei Zweige der App Fusion, einer der Hunderten von Einheiten, UnitMain (der Gerätehauptformular, würden Sie erraten) gestoppt die Anwendung global zu erkennen.

Dies ist ein eher bizarres Problem - ich das Programm bekommen konnte durch die Definition Anwendung zu kompilieren: TApplication in UnitMain und Einstellung, die auf die Anwendung unserer .dpr Projektdatei, aber das führt zu einer Zugriffsverletzung, die nicht ist viel von einer Überraschung mit Anwendung der spezielle Sache ist es zu sein.

Ich hoffe, dass jemand das gleiche Problem vor konfrontiert, oder weiß genug von Delphi VCL Innenleben mir hier zu helfen.

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;

Der genaue Fehler ist, dass der Compiler nicht Anwendung in diesem Gerät nicht erkennt. Zum Beispiel für ein Application.ProcessMessages; nennen, ist der Fehler „Objekt oder Klassentyp erforderlich“. Keiner der anderen Einheiten hat dieses Problem.

War es hilfreich?

Lösung

Ich denke, es ist sehr wahrscheinlich, dass Sie zwei Symbole als „Application“ in Umfang und die eine von der Einheit Forms ist nicht die aktive. Stellen Sie sicher, dass die Einheit Formular in dem uses-Liste nach einer vorherigen Einheit kommt, die ein Symbol enthält genannt Anwendung.

Aber, müssen Sie mehr Informationen liefern. Die genauen Fehlermeldungen, etc.

Andere Tipps

Ich bin froh, every zu sehen arbeiten jetzt, aber ich will hinzufügen, dass ein anderer Weg, um solche Probleme zu lösen, vor allem, wenn Sie nicht wollen, Ihre Anwendungen Klauseln neu zu ordnen ist, den Gerätenamen voranstellen, was auch immer Sie verwenden möchten zB.

Forms.Application.ProcessMessages;

Welche Einheiten sind in der uses-Klausel am Anfang der Datei? Anwendung kommt von der "Forms" Einheit.

zB.

unit MyUnit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms;
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top