Delphi:模仿 MS OneNote 的数据结构

标签 delphi data-structures

MS 的 OneNote 使用的数据层次结构本质上是一个简单的树,尽管信息是通过选项卡式界面而不是 TreeView 显示的。您从“笔记本”开始,它可以有“部分”,其中有“页面”。我正在尝试对此进行建模。就我而言,页面将链接到 RichEdit 的内容。

我的问题不是我想不出办法来做到这一点。我的问题是我不确定几种可能性中哪一种最终是最简单的。这就是我希望你能加入的地方。

例如,我可以使用常规的 [MyBase] 数据库。页面数据集将包含其名称字段和 RichEdit 数据。页面将嵌套在部分中,而部分将嵌套在笔记本中。

如果我想了一下,似乎这也可以用简单的 stringList 来建模,特别是如果列表中的每个元素都包含逗号分隔的 ID 值和层次结构中的位置,以及笔记本/部分/页面名称。

但是这似乎也非常适合 XML ...如果我要了解有关 XML 的更多信息:-)

你们更有经验的人怎么看?

一如既往地谢谢...

最佳答案

无论您使用数据库还是 XML,请尝试将数据访问例程放入数据模块中。让您的 GUI 单元调用数据模块的公共(public)方法,并确保这些调用不依赖于数据的存储方式。这样,您可以从一种方法开始,然后只需编辑数据模块即可切换到另一种方法。

关于Delphi:模仿 MS OneNote 的数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1029430/

相关文章:

delphi - 如何禁用ActionMainMenuBar中的菜单、子菜单?

algorithm - 寻找有效的算法(非平凡的)

javascript - Node JS,传统数据结构? (例如 Set 等),诸如 Java.util 之类的 Node ?

java - 将 ID 列表与主列表进行比较,并根据找到/未找到创建或删除主列表记录

delphi - 使用 Delphi XE 在类中存储通用数组

delphi - 通过 FireDac (Delphi) 连接到 MS SQL LocalDB 时出错

algorithm - 什么数据结构可以实现比O(n)时间更好的随机pop和push?

c++ - Dijkstra 算法 - 初始化节点距离

IOS如何隐藏键盘顶部的顶部栏(带有完成按钮)?

delphi - 使用Delphi中的十六进制内存值进行常量单