我用treeview来把数据库中的数据显示到树上,其中有这样一个方法,MyTreeNode.Data := Pointer(StrSet.FieldByName('id').AsInteger);这样我可以把一个节点所对应的ID号存起来,相反我可以这样IntToStr(Integer(Node.Data)),把这个ID号取出来,这时的ID号是整型的,如果我的ID号是字符型的该怎么用这个方法存和取这个ID号,其实就是类型转换的问题,请高手帮助,多谢!!!

解决方案 »

  1.   

    用 PChar 吧,不过总是觉得你做一个数组和 TreeView 相关联比较好的。
      

  2.   

    做数据库的树你还是用1stClass3000的套件中的DBTreeView吧,多层树对应多重主从表,一设置数据库基本就做完了所有的工作!!!一个树(与数据库无关,功能不是很复杂)最少要二个小时才写的完!!用了这个控件,一分钟就可以完成树!
      

  3.   

    if not ADOTable_NoteBook.IsEmpty then
          begin
            FindListBox.Items.Clear ;
            FindListBox.Visible := True;
            ADOTable_NoteBook.First ;
            while not ADOTable_NoteBook.Eof do
            begin
              FindListBox.Items.AddObject(ADOTable_NoteBook.FieldByname('recTitle').AsString, pointer(ADOTable_NoteBook.FieldByname('recSerial').asinteger));//这一句是你要的
              ADOTable_NoteBook.Next ;
            end;
            ADOTable_NoteBook.Filter := ''; 
            ADOTable_NoteBook.Filtered := False;
            Panel2.Visible := True;
            Splitter1.Visible := True;
          end;
          TitleFindForm.Close ;
        end
      else
        Showmessage('请写入查找信息');
    end;
      

  4.   

    //delphi的字符串是内存自动管理的数据类型,所以可以随意引用。
    Items.AddChildObject(nil, 'aaaa', Pchar('44444444'));
    或者
    var
      s: string;
    begin
      s := 'ssssssssssssssssssssssssssssssss';
      Items.AddChildObject(nil, 'aaaa', Pchar(s));
    end;
      

  5.   

    可以先建立一个对象,把你要保存的数据而又不想要显示的全部保存在对象中
    然后使用items.addobject添加对象就可以了
    例如
    type node:=class
         caption:string;
         index:integer;
    end;
    var n:node;
    begin
       n:=node.create;
       n.caption:='ad';
       n.index:=1;
       treeview.items.addoject(n);
    end;begin
       showmessage(node(treelist.items.data[0]).caption);
       showmessage(inttostr(node(treelist.items.data[0]).index));
    end;如何?