Пакет времени разработки не может быть собран - Файл не найден: 'Graphics.dcu' - PullRequest
20 голосов
/ 10 января 2012

В Delphi XE2 у меня есть один элемент управления в паре пакетов разработки / времени выполнения.Изначально все работало нормально.Я построил каждый из них уже много раз.Внезапно без предупреждения пакет времени разработки в одном из моих модулей начал жаловаться на то, что при сборке отсутствует элемент Graphics.Graphics - это стандартная единица, но она не найдена в этом месте.Я даже не внес никаких изменений в это устройство, и, насколько я знаю, какие-либо изменения, которые могут повлиять на это.

Вот только использование в верхней части (интерфейс) этого устройства:

uses
  Graphics, ColorConv, Classes, Dialogs, ZLib;

Как видите, это очень простая единица, и я только делаю очень простые изменения в этом проекте.Что может заставить его начать жаловаться на это из ниоткуда?

Странно то, что все работает нормально, если я его устанавливаю, просто не строит.

Там немногокод, и я бы не хотел публиковать все это.

Ответы [ 3 ]

28 голосов
/ 10 января 2012

Дикая догадка: для этого нужен префикс Vcl. namespace?

5 голосов
/ 10 января 2012

Проверьте ваши пути в 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.Некоторые производители ПК (например, HP) определяют эту переменную на своих компьютерах, и это мешает требованиям IDE.(В среде IDE PLATFORM используется как временная переменная среды в путях, используемых для разных платформ, что дает сбой, если одна из них предопределена вне среды IDE.) Чтобы проверить это, откройте командную строку и введите SET PLATFORM и нажмите Enter .Если есть один предопределенный, это может вызвать различные проблемы, которые трудно отследить;Вы можете безопасно удалить его на каждой машине, с которой я столкнулся.(Щелкните правой кнопкой мыши My Computer или Start->Computer, выберите Properties, Advanced System Settings, Environmental Variables.)

3 голосов
/ 23 декабря 2015

если в вашем проекте есть несколько объявлений графики (или других блоков VCL, таких как: элементы управления, формы ...), вы можете добавить пространство имен VCL в свой проект
следующим образом:

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

...