2012-01-10 102 views
19

在Delphi XE2中,我在一对设计/运行时包中有一个控件。最初,一切工作正常。我已经多次构建了它们中的每一个。突然没有任何警告,设计时间包开始在我的一个单位中抱怨说,当我构建时,Graphics单元缺失。 Graphics是一个标准单位,但它不是从这一个地方找到的。我甚至没有对这个单位做过任何修改,并且据我所知,任何可能影响到这个的变化。设计时包无法生成 - 文件未找到:'Graphics.dcu'

在这个单元的顶部(接口)这里只是用途:

uses 
    Graphics, ColorConv, Classes, Dialogs, ZLib; 

正如你所看到的,这是一个非常简单的单元,我只对这个项目非常简单的更改。有什么可以让它开始抱怨从哪里冒出来?

奇怪的是,这一切工作正常,如果我安装它,它只是不建。

有相当多的代码,我讨厌有权发布整个事情。

+2

@Downvoter:请解释这是如何“没用”? – 2012-01-10 15:13:51

+1

+1。你当然不是唯一一个处于相同情况下的人,当他们转向XE2时肯定会帮助其他人。 – 2012-01-10 18:21:40

回答

25

大胆猜测:它需要Vcl.命名空间前缀?

+0

这样做 - 我是新来的名称空间前缀:D – 2012-01-10 01:27:53

+17

如果您确定'VCL'包含在'单元范围名称'列表中,您不需要在代码中添加'Vcl.'前缀项目选项代替。 – 2012-01-10 02:30:16

+0

@fran +1,这是如何与Vcl协同工作的。字首? im confused – PresleyDias 2012-01-10 10:02:31

4

检查您的路径Tools->Options->Environment Options->Delphi Options->Library,特别是Library PathBrowsing 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击中输入检查。如果有一个预先定义的,它会导致各种难以追查的问题;您可以在每台运行的机器上安全地移除它。 (右键单击或Start->Computer,选择PropertiesAdvanced System SettingsEnvironmental Variables。)

+0

伟大的提示,但其他答案解决了我的问题:D – 2012-01-10 01:29:02

2

如果有图形(或其他VCL单元,如:控件,窗体...)的几个声明在你的项目,你可以添加VCL命名空间到你的项目
如下:

project menu-->options-->delphi compiler->>add in "unit scope names" value "Vcl"