我做了一个试验,初始化combobox代码如下:
var
  i: integer;
  p: pstring;
begin
  for i:=0 to 100 do
  begin
    new(p);
    p^ := inttostr(i);
    combobox.Items.AddObject(inttostr(i),TObject(p^));
  end;但通过测试发现上面代码造成201处内存泄漏,最终我该怎样释放combobox中的object属性?

解决方案 »

  1.   

    new(p)以后
    要Dispose
    或者使用:
    GetMem()
    FreeMem();资源泄露就是new(p)后没有释放。
      

  2.   

    并非是释放Object属性。
    而是你使用了指针,而且new了,同时你还没有释放指针资源,所以内存泄露。
      

  3.   

    使用combobox.Items.AddObject必须new一个地址,这样添加的对象才能够在函数外边使用。
    否则string(combobox.Items.Objects[combobox.ItemIndex])将得不到Object的值。
    但我不知道cobbobox.items.clear会不会将new的内存释放。好像不能,但我该怎么释放?