无法在Delphi中查找类

时间:2014-05-21 09:42:50

标签: class delphi

我有一个delphi应用程序,目前有3个单元。

我有2个表单Start_Interface_uLogin_u 以及另一个名为TMobileSystem_u的单位(没有表格)。

TMobileSystem_u我有一些课程。

TWebSystem = Class
  Protected
    FRequest: TRequest;

  Public
    Constructor Create();
    Function Login(SUsername: String; SEmail: String; SPassword: String): String;
End;

但是当我将单位添加到我的任何表格的使用中时,我无法引用一个类。

例如: 在Login_u我想添加一个名为WebSystemInterface : TWebSystem的变量问题是,当我使用TMobileSystem_u时,它在使用中找不到crtl + space并且它没有&{当我将它声明为变量时,找到该类。

可能有什么不对?有谁知道吗?

**编辑

这是尝试编译项目后的输出

Checking project dependencies...
Compiling Exotic_Pets.dproj (Debug, Win32)
dcc command line for "Exotic_Pets.dpr"
  c:\program files (x86)\embarcadero\studio\14.0\bin\dcc32.exe -$O- -$W+ --no-config -M -Q -TX.exe -AGenerics.Collections=System.Generics.Collections;
  Generics.Defaults=System.Generics.Defaults;WinTypes=Winapi.Windows;WinProcs=Winapi.Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE -DDEBUG 
  -E.\Win32\Debug -I"c:\program files (x86)\embarcadero\studio\14.0\lib\Win32\debug";"c:\program files (x86)\embarcadero\studio\14.0\lib\Win32\release";
  C:\Users\Jacques\Documents\Embarcadero\Studio\14.0\Imports;"c:\program files (x86)\embarcadero\studio\14.0\Imports";
  C:\Users\Public\Documents\Embarcadero\Studio\14.0\Dcp;"c:\program files (x86)\embarcadero\studio\14.0\include";"C:\Program Files 
  (x86)\Raize\CS5\Lib\RS-XE6\Win32" -LEC:\Users\Public\Documents\Embarcadero\Studio\14.0\Bpl -LNC:\Users\Public\Documents\Embarcadero\Studio\14.0\Dcp 
  -NU.\Win32\Debug -NSWinapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;System;Xml;Data;Datasnap;Web;Soap; -O"c:\program files 
  (x86)\embarcadero\studio\14.0\lib\Win32\release";C:\Users\Jacques\Documents\Embarcadero\Studio\14.0\Imports;"c:\program files 
  (x86)\embarcadero\studio\14.0\Imports";C:\Users\Public\Documents\Embarcadero\Studio\14.0\Dcp;"c:\program files (x86)\embarcadero\studio\14.0\include";
  "C:\Program Files (x86)\Raize\CS5\Lib\RS-XE6\Win32" -R"c:\program files (x86)\embarcadero\studio\14.0\lib\Win32\release";
  C:\Users\Jacques\Documents\Embarcadero\Studio\14.0\Imports;"c:\program files (x86)\embarcadero\studio\14.0\Imports";
  C:\Users\Public\Documents\Embarcadero\Studio\14.0\Dcp;"c:\program files (x86)\embarcadero\studio\14.0\include";"C:\Program Files 
  (x86)\Raize\CS5\Lib\RS-XE6\Win32" -U"c:\program files (x86)\embarcadero\studio\14.0\lib\Win32\debug";"c:\program files 
  (x86)\embarcadero\studio\14.0\lib\Win32\release";C:\Users\Jacques\Documents\Embarcadero\Studio\14.0\Imports;"c:\program files 
  (x86)\embarcadero\studio\14.0\Imports";C:\Users\Public\Documents\Embarcadero\Studio\14.0\Dcp;"c:\program files (x86)\embarcadero\studio\14.0\include";
  "C:\Program Files (x86)\Raize\CS5\Lib\RS-XE6\Win32" -V -VN -NBC:\Users\Public\Documents\Embarcadero\Studio\14.0\Dcp 
  -NHC:\Users\Public\Documents\Embarcadero\Studio\14.0\hpp -NO.\Win32\Debug   Exotic_Pets.dpr   
[dcc32 Error] Login_u.pas(39): E2003 Undeclared identifier: 'TWebSystem'
[dcc32 Fatal Error] Start_Interface_u.pas(43): F2063 Could not compile used unit 'Login_u.pas'
Failed
Elapsed time: 00:00:00.3

1 个答案:

答案 0 :(得分:4)

  1. 如果您的单位位于不同的文件夹中并且他们的路径未在DPR或项目中设置,那么会发生这种情况"搜索路径"。

  2. uses部分中使用时,Ctrl + Space可能并不总是建议可用单位的全长。我跳过了这个线索。

  3. 如果将单元添加到implementation部分,则不能在此之前访问它的constatnts / classes / etc(例如,在TForm字段,类型定义和var部分中)

  4. 其他单位无法查看或访问implementation部分中声明的类。