Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Два VirtualStringTree и один редактор


Автор: gonan 25.7.2021, 12:56
На форме находятся два компонента VirtualStringTree (vst1, vst2). Для создание собственных редакторов данных я использовал пример из проекта Figure 1.4 (автор: Титов Сергей (Quadr0, Garnet)). Пока у меня был один компонент vst1 меня всё устраивало. При добавлении vst2 мне также понадобился редактор данных. Но в методе (TVTCustomEditor.PrepareEdit) используется поле VTEditNode.Kind для создания экземпляра редактора данных.

Код

type
  PVTEditNode = ^TVTEditNode;
  TVTEditNode = record
    Kind: TVTEditorKind;
    Value: String;
    Changed: Boolean;
  end;

function TVTCustomEditor.PrepareEdit(Tree: TBaseVirtualTree; Node: PVirtualNode;
  Column: TColumnIndex): Boolean;
var
  VTEditNode: PVTEditNode;
begin

case VTEditNode.Kind of
...
end;


Но для второго vst2 мне требуется совершенно другая структура непохожая TVTEditNode со своими полями. 

Как правильно такое реализовать? Можно создать новый класс TVTCustomEditor_2 специально для vst2, но это как-то нерационально хотя и решит мою проблему. Может существует другой способ(подход) для решения.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)