Mic*_*l T 4 delphi delphi-2010
我希望通过将TGUID放入其中来使用TTreeNode的Data(指针)属性.有人知道如何实现这个目标吗?
这是代码的一部分,可能会帮助你们了解我正在尝试做什么.
if Assigned(trNode) then
begin
trNode := tvMain.Items.Add(trNode, dmMain.qryTreeView.FieldByName('SomeColumn').Text);
gID := StringToGUID(dmMain.qryTreeView.FieldByName('ID').Text);
trNode.Data := //how do I do this?
Run Code Online (Sandbox Code Playgroud)
处理此问题的最佳方法是从中派生新类TTreeNode并为其提供TGUID数据成员,然后使用该TTreeView.OnCreateNodeClass事件让TreeView创建类的实例.这样,RTL会自动为您的guid值管理内存(并允许您以任何其他方式自定义节点).要访问guid,您需要做的就是TTreeNode在需要时键入指针.例如:
type
TMyTreeNode = class(TTreeNode)
public
Guid: TGuid;
end;
procedure TMyForm.tvMainCreateNodeClass(Sender: TCustomTreeView; var NodeClass: TTreeNodeClass);
begin
NodeClass := TMyTreeNode;
end;
Run Code Online (Sandbox Code Playgroud)
trNode := tvMain.Items.Add(...);
TMyTreeNode(trNode).Guid := StringToGUID(...);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
358 次 |
| 最近记录: |