代码如下: var myrecordpointer:pmyrecord;//pmyrecord为指针型记录 begin myrecordpointer:pmyrecord; with tform2.Create(Application) do begin try showmodal; finally if modalresult=mrok then begin new(myrecordpointer); with treeview1.Items.AddChild(treeview1.Selected,Editcaption.Text) do begin imageindex:=level+1; selectedindex:=level+1; myrecordpointer.parentnodeid:=pmyrecord(treeview1.Selected.Data)^.nodeid;///此句报错,报错信息如下图! myrecordpointer.nodeid:=pmyrecord(treeview1.Selected.Data)^.nodeid+'-'+inttostr(treeview1.Selected.Count); myrecordpointer.caption:=form2.Editcaption.Text; myrecordpointer.url:=form2.Editurl.Text; data:=myrecordpointer; end; adotable1.Append; adotable1.FieldByName('parentnodeid').AsString:=pmyrecord(treeview1.Selected.Data)^.nodeid; adotable1.FieldByName('nodeid').AsString:=pmyrecord(treeview1.Selected.Data)^.nodeid+'-'+inttostr(treeview1.Selected.Count); adotable1.FieldByName('caption').AsString:=form2.editcaption.Text; adotable1.FieldByName('url').AsString:=form2.editurl.Text; adotable1.Post; end; free; end; end; end;
将with treeview1.Items.AddChild(treeview1.Selected,Editcaption.Text) do 改为: with treeview1.Items.AddObject(treeview1.Selected,Editcaption.Text,myrecordpointer) do 即可。