下面是自定义的一个类
type
  TBuyBill = class(TListBox)
  public
    State:String;               
    BillNumber:String;          
    PassNumber:String;          
    Assessor:String;            
  end;下面是引用类
var
  str:string;
  Bill_buy:array[0..9] of TBuyBill;
begin
  str:='hello';
  Bill_buy[0]:=TBuyBill.Create(Form1);
  Bill_buy[0].Items.Add(str);                     //这句出错
end;错误提示:
   'Control'has no parent window我错在哪里?

解决方案 »

  1.   

    在Bill_buy[0]:=TBuyBill.Create(Form1);后加上下面一句:
    Bill_buy[0].parent:=self;还有上面一句Bill_buy[0]:=TBuyBill.Create(Form1);
    最好也改为Bill_buy[0]:=TBuyBill.Create(self);其实self就是你的form1,但是用self在你窗口改名后不用改任何代码。Bill_buy[0].Items.Add(str); 这句是什么意思?你想干吗?
    给其域变量赋值应该这样:Bill_buy[0].state:='aaaa';                    
      

  2.   

    我想把这个对象当作listbox一样用,不可以吗?
    bill_buy这个对象数组是从TListBox继承下来的啊,难道不能这样用吗?
      

  3.   

    其实说白了就是想在ListBox中再加上三、四个string属性用而已,所以继承了TListBox类,再加几个变量