Nja, eigentlich exportiert man ja nicht den Typen, sondern legt ein Alias an.
type
OtherByte = Byte; // Alias (in selbiger oder anderer
Unit)
Byte = System.Byte; // gleichnamiger Alias in anderer
Unit
TMyByte = type Byte; // neuer Type
Indirekt kann man schon den ganzen Typ exportieren.
Neuerdings kann man (und ist auch, bei vielen
RTL/
VCL-Enums, auf die fieße Idee gekommen das zu nutzen)...
{$SCOPEDEUNMS ON}
Damit kann man den Enum nur noch mit Scope (Namespace) nutzen und schon braucht man die einzelnen Werte nicht mehr einzeln rüberzuholen.
Delphi-Quellcode:
type
TFoo = (A, B, Foo);
{$SCOPEDENUMS ON}
TBar = (A, B, Bar);
{$SCOPEDENUMS OFF}
begin
WriteLn(Integer(Foo));
WriteLn(Integer(A)); // TFoo.A
WriteLn(Integer(TBar.B));
WriteLn(Integer(TBar.Bar));
WriteLn(Integer(Bar)); // Fehler
end;