关于TListView中的Data属性

赋值
type
    PAllHidenDate = ^AllHidenDate;
    AllHidenDate = record
        PriceID: Integer;
        OrderNumber: string;
        State: Integer;
        PriceData: WideString;
    end;

var
    HidenData: PAllHidenDate;

begin
    with lvDataViewAll.Items.Add do
    begin

        HidenData := New(PAllHidenDate);
        HidenData.PriceID := StrToIntDef(Node.Attributes['PriceID'], 0);
        HidenData.State := StrToIntDef(Node.Attributes['State'], 1);
        HidenData.OrderNumber := Node.Attributes['PriceNumber'];
        HidenData.PriceData := Node.XML;
        Data := HidenData;
    end;
end;

释放Data:
procedure TOrderQuotation.lvDataViewAllDeletion(Sender: TObject; Item:
    TListItem);
var
    HidenData : PAllHidenDate;
begin
    if Item.Data = nil then Exit;
    HidenData := Item.Data ;
    Dispose(HidenData);
end;


释放内存时需要和赋值时的指针类型相同,不然会出错内存泄漏。

    最近发现,WIN2003的内存管理比XP的内存管理要好很多(应该是容错能力比较强)。发现这个问题也因为上面的代码,在WIN2003中运行不会提示内存汇漏,而在XP中却会。

转载于:https://www.cnblogs.com/sonicit/archive/2007/08/25/869650.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值