2012-01-10 8 views
19

En Delphi XE2, tengo un control único en un par de paquetes de diseño/tiempo de ejecución. Originalmente, todo estaba funcionando bien. Ya construí cada una de ellas muchas veces. De repente, sin previo aviso, el paquete de tiempo de diseño comenzó a quejarse en una de mis unidades de que la unidad Graphics falta cuando construyo. Graphics es una unidad estándar, pero no se encuentra desde este lugar. Ni siquiera he hecho ningún cambio en esta unidad y, hasta donde yo sé, cualquier cambio que pueda afectar esto.El paquete de tiempo de diseño no se puede compilar. Archivo no encontrado: 'Graphics.dcu'

He aquí sólo los usos en la parte superior (interfaz) de esta unidad:

uses 
    Graphics, ColorConv, Classes, Dialogs, ZLib; 

Como se puede ver, es una unidad muy simple, y sólo hacer cambios muy simples a este proyecto. ¿Qué podría hacer que comience a quejarse de esto de la nada?

Lo extraño es que todo funciona bien si lo instalo, simplemente no se compila.

Hay un poco de código, y odiaría tener que publicar todo.

+2

@Downvoter: explique cómo esto "no es útil". –

+1

+1. Seguramente no eres el único en la misma situación y ciertamente ayudará a otros cuando pasen a XE2. –

Respuesta

25

Conjetura salvaje: ¿necesita el prefijo de espacio de nombres Vcl.?

+0

Eso lo hizo - Soy nuevo en los prefijos del espacio de nombres: D –

+17

No necesita agregar el prefijo 'Vcl' en el código si se asegura de que' Vcl' esté incluido en la lista 'Nombres de alcance de la unidad' en Opciones de proyecto en su lugar. –

+0

@fran +1, cómo funciona esto con Vcl. ¿prefijo? estoy confundido – PresleyDias

4

Revise sus rutas en Tools->Options->Environment Options->Delphi Options->Library, en particular las configuraciones Library Path y Browsing Path. Los valores por defecto para mi instalación de XE2 (con exclusión de los añadidos por los componentes de terceros y mi propio material):

Biblioteca:

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; 

Navegación:

$(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; 

También, ya que eres nuevo para XE2, es posible que desee comprobar para ver (fuera del IDE) si tiene definida una variable de entorno para PLATFORM. Algunos fabricantes de PC (HP como ejemplo particular) definen esta variable en sus computadoras e interfiere con los requisitos del IDE. (El IDE usa PLATFORM como una variable ambiental temporal en rutas utilizadas para diferentes plataformas, que falla si hay una predefinida fuera del IDE). Puede verificar abriendo un símbolo del sistema y escribiendo SET PLATFORM y presionando Ingrese. Si hay uno predefinido, puede causar varios problemas difíciles de localizar; puedes eliminarlo de forma segura en todas las máquinas que he encontrado. (Haga clic derecho o Start->Computer, elija Properties, Advanced System Settings, Environmental Variables.)

+0

Excelentes consejos, pero otra respuesta solucionó mi problema: D –

2

si hay varios declaración de gráficos (u otras unidades VCL como: controles, formularios ...) en su proyecto, puede agregar VCL espacio de nombres a su proyecto
de la siguiente manera:

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

Cuestiones relacionadas