在Delphi XE2中,我在一对设计/运行时包中有一个控件。最初,一切都很好。我已经多次建造了它们。突然间没有任何警告,设计时间包开始在我的一个单位抱怨我Graphics
单位在我建造时丢失了。 Graphics
是一个标准单位,但在这一个地方找不到。我甚至没有对这个单位做过任何改变,据我所知,任何可能影响这个的改变。
这里只是本单元顶部(界面)的用途:
uses
Graphics, ColorConv, Classes, Dialogs, ZLib;
正如您所看到的,它是一个非常简单的单元,我只对这个项目进行了非常简单的更改。有什么可以让它开始抱怨这个?
奇怪的是,如果我安装它一切正常,它就不会构建。
有相当多的代码,我不想发布整个内容。
答案 0 :(得分:28)
狂野猜测:它需要Vcl.
命名空间前缀?
答案 1 :(得分:5)
检查Tools->Options->Environment Options->Delphi Options->Library
中的路径,尤其是Library Path
和Browsing Path
设置。我安装XE2的默认值(不包括那些由第三方组件和我自己的东西添加的):
库:
c:\program files (x86)\embarcadero\rad studio\9.0\lib\Win32\release;c:\program files (x86)\embarcadero\rad studio\9.0\Imports;C:\Users\Public\Documents\RAD Studio\9.0\Dcp;c:\program files (x86)\embarcadero\rad studio\9.0\include;
浏览:
$(BDS)\SOURCE\VCL;$(BDS)\source\rtl\common;$(BDS)\SOURCE\RTL\SYS;$(BDS)\source\rtl\win;$(BDS)\source\ToolsAPI;$(BDS)\SOURCE\IBX;$(BDS)\source\Internet;$(BDS)\SOURCE\PROPERTY EDITORS;$(BDS)\source\soap;$(BDS)\SOURCE\XML;$(BDS)\source\db;$(BDS)\source\Indy10\Core;$(BDS)\source\Indy10\System;$(BDS)\source\Indy10\Protocols;$(BDS)\source\fmx;$(BDS)\source\databinding\components;$(BDS)\source\databinding\engine;$(BDS)\source\databinding\graph;$(BDS)\source\fmi;$(BDS)\source\data;$(BDS)\source\data\ado;$(BDS)\source\data\bde;$(BDS)\source\data\cloud;$(BDS)\source\data\datasnap;$(BDS)\source\data\dbx;$(BDS)\source\data\dsnap;$(BDS)\source\data\Test;$(BDS)\source\data\vclctrls;
此外,由于您是XE2的新用户,您可能需要查看(在IDE之外)是否已定义PLATFORM
的环境变量。一些PC制造商(HP作为一个特例)在他们的计算机上定义了这个变量,它干扰了IDE的要求。 (IDE使用PLATFORM
作为用于不同平台的路径中的临时环境变量,如果在IDE外部预定义了一个环境变量,则会失败。)您可以通过打开命令提示符并键入SET PLATFORM
并点击<来进行检查。 KBD>输入。如果有一个预先定义的,它可能导致各种难以追踪的问题;你可以在我遇到的每台机器上安全地删除它。 (右键单击My Computer
或Start->Computer
,选择Properties
,Advanced System Settings
,Environmental Variables
。)
答案 2 :(得分:3)
如果项目中有多个图形声明(或其他VCL单位,如:控件,表单......),则可以将VCL命名空间添加到项目中
如下:
project menu-->options-->delphi compiler->>add in "unit scope names" value "Vcl"
的