Ответ 1
Дикая догадка: ему нужен префикс пространства Vcl.
?
В Delphi XE2 у меня есть один элемент управления в паре пакетов дизайна/времени выполнения. Первоначально все работало нормально. Я уже много раз их строил. Внезапно, без предупреждения, пакет времени разработки начал жаловаться в одном из моих блоков, когда модуль Graphics
отсутствует при создании. Graphics
- стандартная единица, но она не найдена из этого одного места. Я даже не внес никаких изменений в это устройство и, насколько мне известно, никаких изменений, которые могут повлиять на это.
Здесь используется только верхний (интерфейс) этого устройства:
uses
Graphics, ColorConv, Classes, Dialogs, ZLib;
Как вы можете видеть, это очень простой блок, и я делаю очень простые изменения в этом проекте. Что может заставить его начать жаловаться на это из ниоткуда?
Странно, что все работает отлично, если я его устанавливаю, он просто не создается.
Там довольно много кода, и мне бы не хотелось публиковать все это.
Дикая догадка: ему нужен префикс пространства Vcl.
?
Проверьте свои пути в 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
.)
если в вашем проекте есть несколько объявлений графики (или других единиц VCL, таких как: элементы управления, формы...), вы можете добавить пространство имен VCL в свой проект
следующим образом:
project menu-->options-->delphi compiler->>add in "unit scope names" value "Vcl"