有没有办法将多个组件添加到 VirtualTreeView 的 IVTEditLink 编辑器中?
问问题
1287 次
2 回答
7
我会使用一个独立的表单作为编辑器容器,并IVTEditLink
为此目的保留这个概念,因为:
- 如果您使用例如
TPanel
作为编辑器组件容器,那么您应该考虑选择它的Parent
权利TPanel
;具有许多字段的编辑器可能会与虚拟树的边界矩形甚至表单的边界重叠 OnDeactivate
将事件实现到表单比TPanel
组件更容易- 你完全可以离开这个
IVTEditLink
概念,因为它在这里失去了意义;是IVTEditLink
为特定节点和列编辑器设计的,而不是为整个节点设计的;OnEditing
您可以在事件到达时或双击事件等时简单地打开表单编辑器。
但是,如果我没有说服您保留IVTEditLink
多列节点编辑的概念,那么您可以检查this example
表单作为IVTEditLink
界面编辑器的实现。
于 2012-01-08T14:32:25.170 回答
0
只需在OnCreateEditor
事件中创建您的自定义编辑器。因为这个事件提供了Column
参数,你可以为不同的列创建不同的编辑器。例如:
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;
于 2012-01-08T12:39:30.160 回答