帮忙看看!!!

yyf_321 2003-12-12 11:48:42
我在开头定义啦TTreeNodeEx
type
TTreeNodeEx=Class(TTreeNode)
public
levels:string;
ArticleClass:string;
end;

在这函数中用到TTreeNodeEx
procedure TfrmArticleManage.CreateTvWithData;
var
Items:array[0..25] of TTreeNodeEx;
Index:integer;
begin
TVArticle.Items.BeginUpdate;
TVArticle.Items.Clear;
try
Items[0]:=TTreeNodeEx(TVArticle.Items.Add(nil,'文章分类目录树'));
Items[0].ImageIndex:=2;
Items[0].SelectedIndex:=2;
with TVQuery do
begin
While Not Eof do
begin
Index:=Length(trim(FieldByName('MLCJ').AsString)) div 4;
Items[Index]:=TTreeNodeEx(TVArticle.Items.AddChild(Items[Index-1],FieldByName('MLMC').AsString));
//***********************现在下面两名出错:信息如下:
/*Access violation at address 0040421A in module 'article.exe'.Reader of address FFFFFFFA */
Items[Index].levels:=FieldByName('MLCJ').AsString;
Items[Index].ArticleClass:=FieldByName('WZLX').AsString;
//***********************
Items[Index].SelectedIndex:=4;
Items[Index].ImageIndex:=4;
Next;
Application.ProcessMessages;
end;
end;
finally
TVArticle.Items.GetFirstNode.Expand(false);
TVArticle.Items.EndUpdate;
end;
end;
...全文
9 8 打赏 收藏 举报
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
dulei115 2003-12-12
掉了一点
p: PMyRecord;
  • 打赏
  • 举报
回复
yyf_321 2003-12-12
怎么写啊,刚学不懂啊,大家帮帮忙,我这是看YOUR BASE 2003 的,他是这样写的啊
  • 打赏
  • 举报
回复
dulei115 2003-12-12
楼主改一下吧,用下面的方法:
type
PMyRecord = ^MyRecord;
MyRecord = record
levels: string;
ArticleClass: string;
end;//end of record

Items:array[0..25] of TTreeNode

new(p);
p.levels := ...;
p.ArticleClass := ...;
Items[0] := TreeView1.Items.AddChildObject(Treeview1.Selected,...,p);
//dispose(p);//一定要去掉这条语句,不然的话,Treeview中的Data也被dispose掉了。


PMyRecord(Items[0].Data).levels
  • 打赏
  • 举报
回复
dulei115 2003-12-12
AddChild只能Create一个TTreeNode,不会New出levels:string;ArticleClass:string;的空间,所以在访问时会出错。
楼主应该重新编写相对于TTreeNodeEx的AddChild函数

  • 打赏
  • 举报
回复
lixiufu 2003-12-12
up
  • 打赏
  • 举报
回复
mingjianzeng2003 2003-12-12
学习!
  • 打赏
  • 举报
回复
dulei115 2003-12-12
PMyRecord(Items[0].Data).levels
这个是调用数据的方法,就像你原来的在后面可能用到的Items[0].levels
  • 打赏
  • 举报
回复
yyf_321 2003-12-12
dulei115() :
这句是什么意思,要不要的啊???
PMyRecord(Items[0].Data).levels
  • 打赏
  • 举报
回复
相关推荐
发帖
Delphi
加入

5094

社区成员

Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
申请成为版主
帖子事件
创建了帖子
2003-12-12 11:48
社区公告
暂无公告