发现data数据指向的数字不是no 而是name的数据。并且,很乱套,也不是当前节点应该对应的那个name.
procedure TForm1.Button1Click(Sender: TObject);
var
no,pno,t:string;
mylabel:TLabel;
name:string;
node:TTreeNode;
i,j:Integer;
begin
TreeView1.Items.Clear;
con1.Open;
while not ds1.Eof do
begin
no:=ds1.Fields[0].AsString;
name:=ds1.Fields[1].AsString;
j:=ds1.Fields[2].AsInteger;
if j=0 then
node:=TreeView1.Items.AddObject(nil,name,PChar(no))
else
node:=TreeView1.Items.AddChildObject(TreeView1.Items[j-1],name,PChar(no));
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
no,pno,t:string;
mylabel:TLabel;
name:string;
node:TTreeNode;
i,j:Integer;
begin
TreeView1.Items.Clear;
con1.Open;
while not ds1.Eof do
begin
no:=ds1.Fields[0].AsString;
name:=ds1.Fields[1].AsString;
j:=ds1.Fields[2].AsInteger;
if j=0 then
node:=TreeView1.Items.AddObject(nil,name,PChar(no))
else
node:=TreeView1.Items.AddChildObject(TreeView1.Items[j-1],name,PChar(no));
end;
end;
解决方案 »
- 用GifImage控件在Image1中放gif图片的问题
- 服务器端怎么知道客户端发送的数据格式?(用的TTCP)
- 谁有Indy组件的学习资料,实用的,深入讲解组件的功能属性和使用方法,最好还带一些简单的小例子~
- 关于使用组件是出现“没有注册类别”
- 想开发路测系统,如何最简单实现 GIS,GPS 最简单功能。欢迎指导
- ●莫名其妙的中断
- 关于临时表的问题!!!(高手请进,进者有分,急用)(100分)
- 那位大哥知道,我在应用程序中和在应用程序调用的DLL中,同时使用一个数据模板(公共)。该如何处理最佳,能够保证在一个应用程序中只有一个模板的实例。先谢了!
- 非技术问题:各位大虾,去哪里寻找OPGL的资料?
- delphi telnet
- 问一个简单的dataset问题 急
- 请检查一下下列代码中的错误。
把两处PChar(no)替换成Pointer(StrtoInt(no))试试
{新建一个项目试一下:}
procedure TForm1.Button1Click(Sender: TObject);
var
no : string;
begin
no := '010203';
Self.TreeView1.Items.AddChildObject(nil, 'ClickMe', Pointer(StrtoInt(Format('%.6d',[StrtoInt(no)]))));
end;procedure TForm1.TreeView1Click(Sender: TObject);
begin
Showmessage(Format('%.6d',[integer(Self.TreeView1.Selected.Data)]));
end;
var
no : string;
begin
no := '010203';
Self.TreeView1.Items.AddChildObject(nil, 'ClickMe', Pointer(StrtoInt(Format('%.6d',[StrtoInt(no)]))));
end;procedure TForm1.TreeView1Click(Sender: TObject);
begin
Showmessage(Format('%.6d',[integer(Self.TreeView1.Selected.Data)]));
end;
01 aaaaa 0
0101 aaaaa 1
0102 aaaaa 1
02 aaaaa 0
0201 aaaaa 4
020101 aaaaa 5
我要把 name 保存在 node.text中。想把id保存在data中。有没有什么方便方法?或者说像在C#里面一样node.name里面可以保存的
而是希望TreeNode.Data指向每个数字字符串,那你需要一个字符串列表,这对资源的开销是个考验,这个思路并不可取。建议还是改变一下思路,从010203、01、101111这些字串的规律中找突破
node:=TreeView1.Items.Add(nil,name);
mylabel:=TLabel.Create(Self);
mylabel.Caption:=no;
node.Data:=mylabel;
ShowMessage(TLabel(TreeView1.Selected.Data).Caption);