Firemonkey TTreeView-将对象引用存储在TTreeViewItems,TValue中

Kidbro

尝试使用与旧VCL相同的方法,TTreeNode.好的,没有TTreeNode,也没有方法将treenodes添加到树中,相反,我必须手动创建TTreeViewItem实例并将其parent属性设置为TTreeView实例。现在,TTreeViewItem具有数据属性,但类型为TValue

如何处理这种类型?

我尝试了以下方法:

type
  TMaster = class(TDevice)
  ...
  end;

  ...
  mstitem := TTreeViewItem.create(self);
  mstitem.parent := TreeView1;
  mstitem.data := TMaster.Create(i, 'master'+ inttostr(i));
  ...

  procedure TForm1.TreeView1Click(Sender: TObject);
  var 
    obj: TObject;        
  begin
    selectednode := TTreeView1.Selected;
    obj := TDevice(selectednode.Data.AsObject); //Invalid typecast
    if obj is TDevice then
      showmessage( TDevice(obj).DevName );
  end;
达莉娅(Dalija Prasnikar)

TFmxObject.SetData方法是空的虚拟存根,必须在子孙类中将其重写。您不能使用TreeViewItem.Data它的使用方式,因为它Data实际上包含TTreeViewItem.Name属性。

您将必须创建自己的后代TTreeViewItem类并使用它来代替默认类

  TMyTreeViewItem = class(TTreeViewItem)
  protected
    fData: TValue;
    function GetData: TValue; override;
    procedure SetData(const Value: TValue); override;
  end;

function TMyTreeViewItem.GetData: TValue;
begin
  Result := fData;
end;

procedure TMyTreeViewItem.SetData(const Value: TValue);
begin
  fData := Value;
end;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Firemonkey TTreeView-在TTreeViewItems,TValue中存储对象引用

来自分类Dev

Inno Setup中的TTreeView

来自分类Dev

FireMonkey中的AlphaBlend

来自分类Dev

Firemonkey中的游标处理

来自分类Dev

FireMonkey中的AlphaBlend

来自分类Dev

在Firemonkey中实施按钮单击

来自分类Dev

Firemonkey 中的 KEYDOWN [ CTRL 和 "+" ]

来自分类Dev

如何从数据库检索数据并在delphi中的Ttreeview中显示

来自分类Dev

Firemonkey的本机iOS组件中的限制

来自分类Dev

如何在Firemonkey中绘制虚线?

来自分类Dev

FireMonkey:在OS X中从Samba读取文件

来自分类Dev

FireMonkey应用程序中的彩色文本

来自分类Dev

在Firemonkey TListView中更改交替的颜色

来自分类Dev

如何在Firemonkey中获取TCanvas DC?

来自分类Dev

FireMonkey:在OS X中从Samba读取文件

来自分类Dev

使XE5中的FireMonkey TListBox透明

来自分类Dev

如何在Firemonkey中设置按钮样式

来自分类Dev

在 FireMonkey 中链接 C Obj 文件

来自分类Dev

获取选定的TTreeview子级

来自分类Dev

如何在firemonkey平台上移动2d对象?

来自分类Dev

如何在firemonkey平台上移动2d对象?

来自分类Dev

如何在Firemonkey中的TEdit中隐藏插入符号?

来自分类Dev

FireMonkey-TPopupColumn中缺少OnSetValue事件的解决方法

来自分类Dev

如何调整按钮大小以适合Delphi FireMonkey中的文本?

来自分类Dev

为什么Firemonkey组合中的&符不见了?

来自分类Dev

Firemonkey中的Canvas.Pixels [X,Y]等效于什么?

来自分类Dev

在FireMonkey中更改TMemo的字体和背景颜色

来自分类Dev

如何防止Firemonkey复合组件中的子组件重复?

来自分类Dev

如何从FireMonkey TListBox控件中删除边界线?