Delphi: сборка компонентов - ассоциированный TVirtualStringTree

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

На картинке ниже я указываю и пример из объекта TLabel со свойством FocusControl, связанным с TEdit

введите здесь описание изображения

Если мне это нравится:

  TMyComponent = class(TComponent)
  private
    FVirtualStringTree: TVirtualStringTree;
  protected
    { Protected declarations }
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
  published
    property VirtualStringTree: TVirtualStringTree read FVirtualStringTree write FVirtualStringTree;
  end;

Я получаю такую ​​ошибку: «Не удается загрузить пакет .... Он содержит модуль VirtualTrees.WorkerThread, который также содержится в пакете VirtualTreesR22.

Посоветуйте, пожалуйста, как я могу создавать ассоциации такого типа.


person REALSOFO    schedule 18.03.2016    source источник


Ответы (1)


Проблема не в ассоциации, проблема в том, что вы (косвенно) включаете код из TVirtualStringTree в пакет, а в другом установленном пакете уже есть такой же блок.

Поскольку этот другой пакет, по-видимому, является пакетом времени выполнения для TVirtualStringTree, вы должны просто сослаться на этот пакет из своего пакета. Тогда он не будет пытаться включить модуль, вместо этого он будет ссылаться на него из VirtualTreesR. Таким образом вы избежите конфликта и все должно быть хорошо:

package Bla;

  ...

requires
  VirtualTreesR,
  vcl,
  etc....
person Rudy Velthuis    schedule 18.03.2016
comment
E2202 Требуемый пакет VirtualTreesR22 не найден! В файле * .pas я заставляю использовать VirtualTrees, иначе TVirtualStringTree не распознается. Должен ли я использовать другого потомка? - person REALSOFO; 18.03.2016
comment
Хорошо, вместо этого он работает с VirtualTreesR! Спасибо, Руди. - person REALSOFO; 18.03.2016
comment
У меня такая же проблема с ассоциацией TFDConnection. Где собственно можно найти эту информацию? - person REALSOFO; 23.03.2016
comment
Наверное, это можно найти в пакете FireDac. Я не знаю какой. - person Rudy Velthuis; 23.03.2016