|
對(duì)于指針來說,你必須要分配內(nèi)存。并且必須要釋放內(nèi)存。因此你的實(shí)現(xiàn)方法應(yīng)當(dāng)如下 var p: Pchar; begin GetMem(p,20); p^:='ABCDED'; Node.Data:=p end; 注意,里面不能寫: s:='abcdefg'; p:=Pchar(s); 因?yàn)檫@句的意思是把p指向s的位置。而如果s是一個(gè)局域變量的話他是會(huì)自動(dòng)釋放的,回頭釋放后你的指針就不知道跑到哪里了。因此你可能數(shù)據(jù)就會(huì)錯(cuò)誤?;蛘邽榭?。我估計(jì)你的問題也是這個(gè)原因造成的。 另外,釋放內(nèi)存在TreeView的OnDeletion事件中寫: procedure TForm1.TreeView1Deletion(Sender: TObject; Node: TTreeNode); begin FreeMem(Node.Data,20); end |
|
|