【发布时间】:2010-06-22 08:16:44
【问题描述】:
是否可以在 Delphi Datasnap 2010 中将树视图从 Datasnap 2010 服务器传输到 DataSnap 客户端?
谢谢
【问题讨论】:
-
请解释“传输树视图”。
标签: delphi delphi-2010 datasnap
是否可以在 Delphi Datasnap 2010 中将树视图从 Datasnap 2010 服务器传输到 DataSnap 客户端?
谢谢
【问题讨论】:
标签: delphi delphi-2010 datasnap
您也许可以将一些东西拼凑在一起,在服务器上创建和填充 VCL 控件并将该控件序列化到客户端,但这看起来很丑。
我会让它返回代表树的数据,并使用它来填充客户端的树视图。
NodeId NodeName ParentId
0 Root -1
1 Node1 0
2 Node2 0
3 Node3 0
4 Node1.1 1
【讨论】:
通常的做法不是将 GUI 元素从服务器传输到客户端,而是仅传输数据(例如,作为“数据传输对象”,DTO),这些数据可以使用 @ 等开源库轻松(反)序列化987654321@、NativeXML 或SuperObject。
表示层可以通过这种方式轻松更改(想想 HTML 或移动客户端)。
DTO 的定义可以在Martin Fowler's 网站上找到。
【讨论】:
DataSnap 可以使用 JSON 序列化对象。我建议您创建一个树结构,在其中存储节点,然后相应地填充您的树视图。
不,您不能序列化 VCL TTreeView。
【讨论】: