unigui显示uniTreeVview使用TUniTreeNode内存泄漏的问题【14】
uniTreeVviewc创建一个tree,显示患者姓名(PatientName)。因为需要用到患者ID(PatientID),所以使用help:
TPatientTreeNode = class(TUniTreeNode) //strict private FPatientID: string; function GetPatientID: string; procedure SetPatientID(const Value: string); public property PatientID: string read FPatientID write FPatientID; end; 在增加node时: node.Text := fdqry_patient.FieldByName('Name').AsString + fdqry_patient.FieldByName('Patient_ID').AsString; node.PatientID:= fdqry_patient.FieldByName('Patient_ID').AsString;
看起来很美好。但是在过程中和关闭时,总是内存泄漏。对于node怎么释放都是泄漏。能力有限就是搞不定。
兄弟你怎么做的请告诉我。
最后没办法。使用字典绕过去。
FTag : Integer;
FPatients : TDictionary<string, string>;
在
while not fdqry_patient.Eof do
begin
node :=untrvw_DeptPatient.Items.AddChild(parentNode, '');
node.Text := fdqry_patient.FieldByName('Name').AsString + fdqry_patient.FieldByName('Patient_ID').AsString;
node.Tag := FTag;// :=fdqry_patient.FieldByName('Patient_ID').AsString;
FPatients.Add((IntToStr(FTag)), fdqry_patient.FieldByName('Patient_ID').AsString);
Inc(FTag);
fdqry_patient.Next;
node := nil;
end;