有没有办法将多个组件添加到VirtualTreeView的IVTEditLink编辑器中?
发布于 2012-01-08 22:32:25
我将使用一个独立的窗体作为编辑器容器,并将IVTEditLink概念用于此目的,因为:
TPanel作为编辑器组件容器,那么您应该考虑选择该代码的正确代码;带有许多字段的编辑器可能会重叠虚拟树的边界矩形甚至窗体的边界OnDeactivate事件要比在窗体中实现TPanel事件容易得多componentParent >D12TPanel>概念,因为它在这里失去了意义;<>D13>是为特定节点和列编辑器设计的,而不是针对整个节点;您只需在OnEditing事件发生时或双击事件时打开窗体编辑器即可。
但是,如果我没有说服您放弃使用IVTEditLink概念来编辑多个列的节点,那么您可以查看this example,了解作为IVTEditLink接口编辑器的表单的实现。
发布于 2012-01-08 20:39:30
只需在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;https://stackoverflow.com/questions/8771294
复制相似问题