Delphi:组件构建 - 关联 TVirtualStringTree
Delphi: Component Build - Associate 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 中。
请告知如何创建此类关联。
问题不在于关联,问题在于您(间接)将 TVirtualStringTree
中的代码包含到包中,而另一个已安装的包已经具有相同的单元。
因为其他包显然是 TVirtualStringTree
的运行时包,您应该简单地从您的包中引用该包。然后它不会尝试合并该单位,而是从 VirtualTreesR
引用它。这样,你就避免了冲突,一切都会好起来的:
package Bla;
...
requires
VirtualTreesR,
vcl,
etc....
我正在构建一个新组件,我想添加一个 属性 以关联 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 中。
请告知如何创建此类关联。
问题不在于关联,问题在于您(间接)将 TVirtualStringTree
中的代码包含到包中,而另一个已安装的包已经具有相同的单元。
因为其他包显然是 TVirtualStringTree
的运行时包,您应该简单地从您的包中引用该包。然后它不会尝试合并该单位,而是从 VirtualTreesR
引用它。这样,你就避免了冲突,一切都会好起来的:
package Bla;
...
requires
VirtualTreesR,
vcl,
etc....