有没有办法在VirtualTreeView的IVTEditLink编辑器中添加多个组件?
答案 0 :(得分:6)
我会使用独立表单作为编辑器容器,并为此目的保留IVTEditLink
概念,因为:
TPanel
作为编辑器组件容器,您应该考虑选择Parent
的正确TPanel
;具有许多字段的编辑器可能与虚拟树的边界矩形或甚至表单的边界重叠OnDeactivate
事件实施到表单比TPanel
组件IVTEditLink
概念,因为它在这里失去了意义; IVTEditLink
是为特定节点和列编辑器而不是整个节点设计的;您可以在OnEditing
事件到达时或双击事件等时打开表单编辑器。但是,如果我没有说服您将IVTEditLink
概念留给多个列的节点编辑,那么您可以检查this example
作为{{1的编辑器的表单的实现接口。
答案 1 :(得分:0)
只需在OnCreateEditor
活动中创建自定义编辑器即可。由于此事件提供Column
参数,因此您可以为不同的列创建不同的编辑器。 E.g:
procedure TForm1.OnCreateEditor(Sender: TBaseVirtualTree; Node: PVirtualNode;
Column: TColumnIndex; out EditLink: IVTEditLink);
begin
case Column of
0: EditLink := TColorEditLink.Create;
1: EditLink := TFontEditLink.Create;
//etc..
end;
end;