我有一个delphi应用程序,目前有3个单元。
我有2个表单Start_Interface_u
,Login_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
答案 0 :(得分:4)
如果您的单位位于不同的文件夹中并且他们的路径未在DPR或项目中设置,那么会发生这种情况"搜索路径"。
在uses
部分中使用时,Ctrl + Space可能并不总是建议可用单位的全长。我跳过了这个线索。
如果将单元添加到implementation
部分,则不能在此之前访问它的constatnts / classes / etc(例如,在TForm字段,类型定义和var部分中)
其他单位无法查看或访问implementation
部分中声明的类。