我在使用 Label 添加到TList 中时,遇到这样一个问题。代码如下:
http://topic.csdn.net/u/20080428/17/d8a30588-37a9-45d3-8e50-cd2abcd185cd.html
现在,我希望遍历List来得到Label的Caption,发现使用 
  lab(List[i]).caption   无法通过,只有使用  TLabel(List[bi]).Caption
   
  才行。包括 TLabel(List[i]).Free 也是如此。这是为啥,不懂。能不能用通俗易懂的话给讲讲? 谢谢了!
 
  :)

解决方案 »

  1.   

    就是个类型转换
    list 本来使用的是无类型指针
      

  2.   

    TLabel(List[bi]).Caption这个转换才对,你这是用类定义来转换,类似Integer(a),你不能用定义的实例来转换。
      

  3.   

    为何要用LIST来保存LABEL呢?直接遍历窗体组件就行了
      

  4.   


    list[i] 指向你的实例 。 强转换应该告诉他是转换成什么类Tlabel(List[i])
      

  5.   

    本帖最后由 starluck 于 2010-07-16 14:10:51 编辑
      

  6.   

    强制类型转换。这是语法问题,你还是看看delphi的语法约定吧
      

  7.   

    感谢大家的解释,我原来以为 List1 在 add 之后,就会填充内容了。所以我引用的时候,只需要List1.items[i] 之类的。原来还要把 List1强制转为我添加的东东才行。