Delphi (VCL) Обобщения и привязка данных? - PullRequest
3 голосов
/ 21 мая 2011

Кто-нибудь знает, есть ли в Delphi XE (я говорю здесь о VCL) какие-либо классы Generic Collection, которые работают с элементами управления с поддержкой данных? Другими словами, есть ли какие-либо общие классы, такие как TObjectList <>, которые можно назначить для TDataSource.DataSet, или что-то подобное?

Спасибо.

Dan

Ответы [ 2 ]

5 голосов
/ 21 мая 2011

Да, вы можете, используя концепцию ObjectDataSet , которая, я думаю, в конечном итоге вам придется реализовать самостоятельно на основе связанного примера кода в качестве отправной точки.

В примере кода показано, как объединить концепцию обычного неуниверсального TObjectList и TDataSet. Он использует RTTI для предоставления любого списка, который вы хотите прикрепить к нему, любого типа объекта. Он использует RTTI и не требует использования Generics, скорее он требует, чтобы вы наследовали от TPersistent.

Плохая сторона этого в том, что я использовал это, и я никогда не буду использовать это снова. Полученный код был беспорядочным, медленным, а модель ужасной. В следующий раз я бы держался подальше от элементов управления, осведомленных о данных, и просто использовал контейнеры с виртуальными элементами управления, такими как VirtualTreeView и ExGridView.

Я не вижу причин, по которым вы не могли бы начать с приведенного выше кода в качестве основы и комбинировать обобщения с привязкой данных, но я вижу множество причин, почему вы не должны.

2 голосов
/ 20 декабря 2011

Иметь другое мнение:

  • Пожалуйста, обратитесь к Stefan Glienke . Он является автором перспективного DSharp . Больше на его блоге .
  • Укажите на DN4D (DotNet4Delphi).

Они оба могут использовать классы Generic Collection , как и ожидалось, с привязкой способностью, которая делает доступными данные для визуальных компонентов довольно легко.

...