title: How do I use enum values when their type is defined indirectly in another unit?
body: <p>I am trying to reduce the number of <code>Uses</code> and am running into problems with <code>Enums</code></p>
  
  <pre><code>(* original unit, where types are defined etc *)
  unit unit1;
  type
    TSomeEnumType = (setValue1, setValue2, ...);
  ...
  </code></pre>
  
  <p></p>
  
  <pre><code>(* global unit where all types are linked *)
  unit unit2;
  uses unit1;
  type
    TSomeEnumType = unit1.TSomeEnumType;
  ...
  </code></pre>
  
  <p></p>
  
  <pre><code>(* form unit that will use the global unit *)
  unit unitform;
  uses unit2;
  ...
  procedure FormCreate(Sender : TObject);
  var ATypeTest : TSomeEnumType;
  begin
    ATypeTest := setValue1; (* error says undeclared *)
    ATypeTest := TSomeEnumType(0); (* Works but there's not point in use enum *)
  end;
  ...
  </code></pre>
  
  <p>The problem is that in the unitform <code>setValue1</code> says it is undeclared.  How can I get around this?</p>