control 作为一个对象实例,当它是属于TlistBox时,Canvas是它的属性

解决方案 »

  1.   

    把control的值 转换为tlistbox类型的变量,如control的值真的是tlistbox类型的就可以访问tlistbox的方法、属性等。如不是就会有出错提示。
      

  2.   

    Delphi对象变量的概念有点像指针,但是实际上又不是指针,因为专门有另一个的指针概念。
    但是对象变量的特征跟指针很像,比如说必须初始化(创建新的实例或者指向一个已经存在的实例,当然咯,也可以是nil)。
    所谓实例就是指一块保存对象数据用的内存。当你定义一个对象变量时他不能做任何事情,因为它只是一个“指针”。在初始化后,系统就能够通过你调用的方法来访问相对的偏移量下的数据。如果没有初始化就访问对象的数据,系统会在指定的偏移量的地方读到或者写入错误的信息,此时就会出错(不过没有指针出错那么严重,至少它是由系统自动维护的)。
      

  3.   

    我总是搞不明白  ,canvas是什么属性,还请指教!!
      

  4.   

    is、as 都是类型操作符号你应该多看书!
        
      

  5.   

    强制类型转换,给你举个例子:
    // 清除窗体中所有Edit控件的内容
    procedure ClearAllEditText;
    var
      iIndex: Integer;
    begin
      //遍历所有组件
      for iIndex := 0 to ComponentCount - 1 do begin
        //看这个组件是否为Edit控件
        if (Components[iIndex] is TEdit) then
          //已经判断出来是Edit控件,则把他强制转换为Edit控件
         //这句代码也可以这样写: TEdit(Components[iIndex].Text := '';
          (Components[iIndex] as TEdit).Text := '';   
      end;
    end;