Delphi 2010 datasnap возвращает дерево просмотра с сервера - PullRequest
1 голос
/ 22 июня 2010

возможно ли в Delphi Datasnap 2010 перенести древовидное представление с сервера Datasnap 2010 на клиент DataSnap?

спасибо

Ответы [ 3 ]

2 голосов
/ 22 июня 2010

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

Я бы попросил его вернуть данные, которые представляютдерево и используйте его для заполнения дерева на стороне клиента, вместо этого.

NodeId  NodeName  ParentId
0       Root      -1
1       Node1     0
2       Node2     0
3       Node3     0
4       Node1.1   1
1 голос
/ 22 июня 2010

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

Слой представления может легко изменяться (например, HTML или мобильные клиенты).

Определение DTO можно найти на сайте Мартина Фаулера .

0 голосов
/ 22 июня 2010

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

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

...