tr = record
data:pointer;
id:integer;
st:string;
PPT = ^tr;TPM = class
Pid:Word;
DataList:THashedStringList;
constructor Create;
destructor Destroy; override;
end;
destructor TPM.Destroy; //这个函数经常出错,不知道如果释放THashedStringList里的数据
var
I:Integer;
p:PPT;
begin
for I := 0 to DataList.Count - 1 do
begin
p:= PPT(DataList.Objects[I]); //DataList添加的数据例子如:DataList.addObject('11',PPT) 添加的是PPT类型
FreeMemory(PPacket^.Data);
end;
DataList.Free;
end;
data:pointer;
id:integer;
st:string;
PPT = ^tr;TPM = class
Pid:Word;
DataList:THashedStringList;
constructor Create;
destructor Destroy; override;
end;
destructor TPM.Destroy; //这个函数经常出错,不知道如果释放THashedStringList里的数据
var
I:Integer;
p:PPT;
begin
for I := 0 to DataList.Count - 1 do
begin
p:= PPT(DataList.Objects[I]); //DataList添加的数据例子如:DataList.addObject('11',PPT) 添加的是PPT类型
FreeMemory(PPacket^.Data);
end;
DataList.Free;
end;
需要这两个函数配对出现
GetMemory();
FreeMemory();
data:pointer;
id:integer;
st:string;
PPT = ^tr; TPM = class
Pid:Word;
DataList:THashedStringList;
constructor Create;
destructor Destroy; override;
end; //////////// 这里是添加数据
var
p:PPT;
PM:TPM;
new(P);
p^.Data := AllocMem(256);
PM.DataList.addObject('11',Tobject(p));
/////////////destructor TPM.Destroy; //这个函数经常出错,不知道如果释放THashedStringList里的数据
var
I:Integer;
p:PPT;
begin
for I := 0 to DataList.Count - 1 do
begin
p:= PPT(DataList.Objects[I]); //DataList添加的数据例子如:DataList.addObject('11',PPT) 添加的是PPT类型
FreeMemory(p^.Data);
end;
DataList.Free;
end;
destructor TPM.Destroy; //这个函数经常出错,不知道如果释放THashedStringList里的数据
var
I:Integer;
p:PPT;
begin
for I := 0 to DataList.Count - 1 do
begin
p:= PPT(DataList.Objects[I]); //DataList添加的数据例子如:DataList.addObject('11',PPT) 添加的是PPT类型
FreeMemory(p^.Data);
Dispose(P);
end;
DataList.Free;
end;