title: why delphi use type alias if this was proven to not be a good approach?
body: <p>a year a go i was trying to do something as this question shows <a href="https://stackoverflow.com/questions/16925937/how-do-i-use-enum-values-when-their-type-is-defined-indirectly-in-another-unit">How do I use enum values when their type is defined indirectly in another unit?</a> and i was encourage from other users to leave this mentality couse it was not a good approach for various reason.</p>
  
  <p>well, a few days back i was doing some custom dialog for our software and i thought to use some of the types provided nativelly by delphi instead of declared my owns. my surprise was that the file <code>vcl.dialogs</code> has the same technique i was encourage not to do as the code shows:</p>
  
  <pre><code>{ Message dialog }
  mtWarning   = System.UITypes.TMsgDlgType.mtWarning;
  mtError = System.UITypes.TMsgDlgType.mtError;
  mtInformation   = System.UITypes.TMsgDlgType.mtInformation;
  mtConfirmation  = System.UITypes.TMsgDlgType.mtConfirmation;
  mtCustom    = System.UITypes.TMsgDlgType.mtCustom;
  
  mbYes   = System.UITypes.TMsgDlgBtn.mbYes;
  mbNo    = System.UITypes.TMsgDlgBtn.mbNo;
  mbOK    = System.UITypes.TMsgDlgBtn.mbOK;
  mbCancel    = System.UITypes.TMsgDlgBtn.mbCancel;
  mbAbort = System.UITypes.TMsgDlgBtn.mbAbort;
  mbRetry = System.UITypes.TMsgDlgBtn.mbRetry;
  mbIgnore    = System.UITypes.TMsgDlgBtn.mbIgnore;
  mbAll   = System.UITypes.TMsgDlgBtn.mbAll;
  mbNoToAll   = System.UITypes.TMsgDlgBtn.mbNoToAll;
  mbYesToAll  = System.UITypes.TMsgDlgBtn.mbYesToAll;
  mbHelp  = System.UITypes.TMsgDlgBtn.mbHelp;
  mbClose = System.UITypes.TMsgDlgBtn.mbClose;
  </code></pre>
  
  <p>so basically delphi does a buch of replication of this types that are originally declared on <code>System.UITypes</code> to the <code>vcl.dialogs</code> file.</p>
  
  <p>so the question is: there's a logical explanation to why he does this? is delphi bad writed? this approach is not that bad? if neither there's a adequate way to use this?</p>