【问题标题】:Design-time package fails to build - File not found: 'Graphics.dcu'设计时包无法构建 - 找不到文件:“Graphics.dcu”
【发布时间】:2012-02-06 12:03:32
【问题描述】:

在 Delphi XE2 中,我在一对设计/运行时包中有一个控件。最初,一切正常。我已经多次构建了它们中的每一个。突然没有任何警告,设计时包开始在我的一个单元中抱怨我构建时缺少Graphics 单元。 Graphics 是标准单位,但在这个地方找不到。我什至没有对此单元进行任何更改,据我所知,任何可能影响此的更改。

这里只是这个单元顶部(界面)的用途:

uses
  Graphics, ColorConv, Classes, Dialogs, ZLib;

如您所见,这是一个非常简单的单元,我只对这个项目进行了非常简单的更改。是什么让它突然开始抱怨这件事?

奇怪的是,如果我安装它一切正常,它就是无法构建。

有相当多的代码,我不想发布整个代码。

【问题讨论】:

  • @Downvoter:请解释一下这怎么“没用”?
  • +1。您肯定不是唯一处于相同情况的人,当他们迁移到 XE2 时,它肯定会帮助其他人。

标签: delphi scope custom-controls delphi-xe2


【解决方案1】:

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

【讨论】:

  • 做到了 - 我是命名空间前缀的新手:D
  • 如果您确保 Vcl 包含在项目选项的 Unit Scope Names 列表中,则无需在代码中添加 Vcl. 前缀。
  • @PresleyDias XE2 介绍了 Firemonkey 以及其他一些新的好东西。通过这些更改,Embarcadero 有必要添加这些前缀,以便您可以定义要使用的单位集合中的 哪个。例如Vcl.Graphics vs FMX.Graphics(我不知道这是否是一个真正的比较,只是一个例子)
  • @JerryDodge,好的,关于前缀的想法,很好的例子
【解决方案2】:

如果您的项目中有多个图形声明(或其他 VCL 单元,如:控件、表单 ...),您可以将 VCL 命名空间添加到您的项目中
如下:

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

【讨论】:

    【解决方案3】:

    检查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 并点击 Enter。如果有一个预定义,可能会导致各种难以追踪的问题;您可以在我遇到的每台机器上安全地删除它。 (右击My ComputerStart->Computer,选择PropertiesAdvanced System SettingsEnvironmental Variables。)

    【讨论】:

    • 很好的提示,但其他答案解决了我的问题:D
    猜你喜欢
    • 1970-01-01
    • 2015-11-02
    • 2022-06-15
    • 2014-09-14
    • 1970-01-01
    • 2016-02-28
    • 1970-01-01
    • 2019-12-04
    • 1970-01-01
    相关资源
    最近更新 更多