Exponer identificadores de otras unidades a través de una unidad nueva
A veces necesitas reexportar y exponer los identificadores de otra unidad dentro de tu nueva unidad actual. El resultado final: solo tienes que referenciar esta unidad nueva para poder usar directamente esos identificadores.
Escenarios de uso:
- Mantener compatibilidad con versiones antiguas de unidades y conservar la sintaxis de llamada anterior;
- Encapsular unidades internas de bajo nivel y ocultar los archivos de implementación subyacentes al exterior.
Modo de implementación: en la sección interface de la unidad actual, redefine identificadores homónimos o alias para reenviar los tipos y constantes de la unidad base.
Modificar MyUnit.pas
unit MyUnit;
{$ifdef FPC} {$mode objfpc}{$H+}{$J-} {$endif}
interface
uses Graphics;
type
// Método 1: Crear alias, exponer Graphics.TColor externamente como TMyColor
TMyColor = TColor;
// Método 2: Exponer con el nombre original; es obligatorio añadir el calificador Graphics. para evitar referencias circulares
TColor = Graphics.TColor;
const
// Las constantes también admiten el reenvío para su exposición
clYellow = Graphics.clYellow;
clBlue = Graphics.clBlue;
implementation
end.Lenguaje del código: JavaScript (javascript)
Ejemplo completo
unit MyUnit;
{$ifdef FPC} {$mode objfpc}{$H+}{$J-} {$endif}
interface
uses Graphics;
type
// 1 Alias de tipo Graphics.TColor llamado TMyColor
TMyColor = TColor;
// 2 Exponer el nombre original
// Usar Graphics. para evitar bucles de referencia propios
TColor = Graphics.TColor;
const
// Las constantes también funcionan
clYellow = Graphics.clYellow;
implementation
end.Lenguaje del código: PHP (php)
Programa principal
program showcolor;
{$ifdef FPC} {$mode objfpc}{$H+}{$J-} {$endif}
uses MyUnit;
var
C1: TMyColor;
C2: TColor;
begin
C1 := clYellow;
C2 := clYellow;
end.
Lenguaje del código: PHP (php)

En el programa principal, usamos los nombres redefinidos dentro de MyUnit.

Previous: Identificadores calificados por unidad
Next: ¿Qué es una clase