如果我仅在Delphi中具有其字符串名称,如何引用一个单元(在运行时)?

| 我在具有不同名称的distinct单位中具有类型,并且在字符串中具有单位名称。我需要访问此单元的特定类型。我怎么做? 例:
unit Unit1

type
   TFooType = (
      bar1,
      bar2
   );
然后,我有另一个单位
unit Unit2

type
   TFooType = (
      foo1,
      foo2,
      foo3
   );      
并且,在我的代码中的某个地方,我有一个字符串变量“ UnitName”,其中包含值“ Unit1 \”,我想通过该变量访问Unit1的“ TFooType \”类型。 我正在使用Delphi 2007 对不起,我的英语不好。 提前致谢。     
已邀请:
您无法选择在运行时包含哪些单位。单位是一个编译时概念。 此外,尽管您的两种类型具有相同的基本名称,但它们是完全不同的类型。在代码的其他地方,不能有类型为
TFooType
的变量,并且不能从两个单元中任意决定是否为其分配值。该变量只能保存一种类型的值。 您将不得不考虑完成实际任务的其他方式。我邀请您发布一个新问题,描述您的真正任务是什么。     
@Hrukai,就像乐高玩具一样,您可以做很多事情,但是有些东西并不是设计来那样使用的。 在我看来,您的最终目标是访问类型,而您的起点是变量名。如果您将变量实现为类(OOP),则可以简单地执行Obj.ClassName来查找其类型...但是,如果您为实现选择了类,我预计这种需求(从变量访问类型)将从来没有出现过。 抵制创建新模式的冲动,而是利用类的力量。 http://www.delphibasics.co.uk/Article.asp?Name=OO示例     
您能做的最好的事情就是
if name=\'Unit1\' then T := Unit1.TFoo
之类的东西。但是无论如何,您能用
T
做些什么?由于来自不同单位的枚举类型不同,因此很难想象能够使用
T
进行任何操作。实际上,您如何定义
T
?我唯一可以想象的就是返回类型信息,但现在让我的想象力疯狂!     

要回复问题请先登录注册