补充一点,我想知道这个树型结构是否可以用TSTRING或TSTRINGLIST实现,如果不可行,
我该使用什么方法实现,我对DELPHI来说是新手, 如果可以的话,最好可以复上个例子,不胜感谢。 

解决方案 »

  1.   

    树型结构的话,用treeview实现比较好,而用tstrings也可以实现,但你要定义很多规则。
      

  2.   

    补充一点,我作这个数型结构是否可以用TSTRING或TSTRINGLIST,如果不可以,我该
    怎么作,对与DELPHI,我是个新手,最好可以提供例子,不胜感谢
      

  3.   

    To ch81(missile)
    谢谢大虾的提示,我的这个树型结构不是很复杂,所有我想用TStringList是否可行?
      

  4.   

    jiangcfei() 
    可以,但是你要自己定义StringList的结构。
    比如你最多有三级结构,你就可以让
    每一行的首字母为A代表第一级,B代表第二级,C三级
    Ababy
    Bhello
    Btitle
    ACheng
    BDelphi
    CKyLix
    则结构为
    baby          Cheng
    |--hello       |---Delphi
    |--title              |---Kylix
    不知这样可否?
      

  5.   

    To ch81(missile)
    你好,如果用TStringList作树型结构,是否就必须用首字母来区分它的层次的话?如果是的话,我就不可以用TStringList了,因为这样不利于以后程序的扩充。
    我程序的功能是
    0001
    |
    |
    0002----对应一个LIST
    |             |
    |             |
    0003          01 --- 对应一个STRING,比如 Thank you!
                  |
                  02
    我要对其中的数据进行任意的修改,以及排序。
    那么你对这有什么建议吗?
      

  6.   

    实际上,这个数据结构是你自己定义的,
    但如你所说,我觉得还是用Treeview
    比较好。这个控件可以把自己的内容存为文件,也就是说方便保存,而且
    当他作为treeview显示时,方便修改。
      

  7.   

    To ch8l(missile)
    你好,太好了,总算有点思路了,请问大虾,我是否可以从DELPHI的DEMO里找到Treeview 的帮助。
      

  8.   

    To ch8l(missile)
    你好,多谢你的关注,我现在正在找DELPHI的DEMO中关于TRIEVIEW的,可文件挺多,你是
    否知道,我可以在什么文件名下找到。谢谢
      

  9.   

    To ch81(missile)
    你好,谢谢你的帮助,我现看一下DEMO,有问题的话我再贴帖子,请你明天再关注一下这
    个主题。
      

  10.   

    To ch81(missile)
    你好,我看了下程序,我发觉我没把我的要求说清楚。我的界面是使用STRINGGRID的,而
    不是TREEVIEW; 树型结构我只是用来对数据进行管理,比如通过DLL从
    中间件得到数据,然后将数据显示在STRINGGRID 上,并对用户在STRINGGRID上的操作
    ,再对树型结构进行修改,比如用户在STRINGGRID中插入一条纪录
    ,那我就要将该纪录添加该数据结构里,同时重新刷新,排序,在通过DLL通知中间件
    对数据库作相应的修改。我该怎么办哪?
      

  11.   

    用tstringgrid来显示表格不错,但是要然她表示一定的树型结构,比较繁琐。
    用ttreeview,不行吗,我觉得显示又好,修改又方便。
    何必一定用tstringgrid?
      

  12.   

    to ch8l(missile)
    大虾,你在,太好了。 我之所以要用STRINGGIRD,是因为用户界面是供操作员输入的,
    界面上的功能比较复杂,比如虽然只有6个左右的字段,但是操作员输入的纪录行是不定
    长的,通常超过一屏幕,并且操作员要可以不通过鼠标器,只通过键盘上的快捷键来控制
    纪录的删除,添加,更新,以及排序。
    比如
    代码      属性1          属性2         TEXT
    ---------------------------------------------
    0001      jk             e             write by
                             i             NO.7
                             p             NewYork
    ----------------------------------------------
    0001      ij             e             write by
                             i             NO.8
                             p             HongKong
    ------------------------------------------------
    0001       li            e             write by
                             i             NO.9
                             p             Londong
    因为我是从非关系型的数据库里读数据(通过中间件),所以数据都是象这样一样通过一行
    行存放在数据库里的, 同时根据输入的先后我会给每条纪录加上一个用来排序的字段,使以后用户再查看纪录时
    ,显示的纪录顺序是用户原来输入的顺序。
    当用户比如在0001  li 之前插入一条0001  kk记录,
    那我就要将该纪录插入到数据结构里,分配给新的纪录一个排序号,并将原来0001  li 的排序号重新更新, 所以你可以理解了吧,我为什么要用STRINGGRID,
    又要自己创建一个数据结构。但我不知道具体该怎么实现,请你给些提示吧,我真的急死
    了。老板急着要,可我还没开工那!
      

  13.   

    首先不要叫大虾,直呼ch81即可!
    你早把这个贴了不就可以了嘛。因为tstringgrid为一个表格型的东西。
    ---------------------------------------------
    0001      jk            e            write by
    0001      jk            i            NO.7
    0001      jk            p            NewYork
    ----------------------------------------------
    你看把每个记录补完全如何?这样又好实现。
    而且定位也不是很难
      

  14.   

    To ch81(missile)
    你好,详细点好不好。 我到底还需不需要TREEVIEW啦?好象现在看来不需要TREEVIEW了嘛
      

  15.   

    To ch81(missile)
    使用TREEVIEW是不是程序处理更高效一点哪? 因为比如0001 jk下有很多条纪录(假设
    有200条或更多),STRINGGRID的查找以及刷新效率是否足够高哪?
      

  16.   

    现在看来两种结构都有好有坏,如果要便于对方操作,tstringgrid,
    我觉得效率你不用考虑,因为现在都很快了
      

  17.   

    To  ch81(missile)?
    问题还没解决,但看下来,你的回答对我的帮助最大,所以分数分给你了