2010-06-22 3 views

ответ

2

Вы можете быть в состоянии клудж что-то вместе, что создает и заполняет элемент управления VCL на сервере и сериализовать управление клиентом, но мне кажется некрасиво.

Я бы хотел, чтобы он возвращал данные, представляющие дерево, и использовал это для заполнения дерева на стороне клиента.

NodeId NodeName ParentId 
0  Root  -1 
1  Node1  0 
2  Node2  0 
3  Node3  0 
4  Node1.1 1 
0

DataSnap может сериализовывать объекты с использованием JSON. Я рекомендую вам создать древовидную структуру, в которой вы будете хранить узлы, а затем заполнить свое дерево соответственно.

И нет, вы не можете сериализовать VCL TTreeView.

1

Вместо передачи элементов графического интерфейса от серверов к клиентам распространять данные только для передачи данных (например, как «объекты передачи данных», DTO), которые могут быть легко (дезамерно) сериализованы с использованием библиотек с открытым исходным кодом, таких как OmniXML, NativeXML или SuperObject.

Этот слой может легко измениться (подумайте о HTML или мобильных клиентах).

Определение для DTO можно найти на сайте Martin Fowler's.

Смежные вопросы