如果CheckBox被更改,如何在带有CheckBoxes的FMX.TreeView中获取项目索引?

时间:2019-11-08 08:48:11

标签: delphi treeview firemonkey

我正在尝试将FMX.TreeView与CheckBoxes结合使用,但是找不到一种方法来识别引发TreeViewChangeCheck事件的项目。

我找到的所有解决方案都是关于带有TTreeNode类的VCL.ComCtrls TreeView,但是我正在使用FMX.TreeView。

有人可以帮助我吗?谢谢。

1 个答案:

答案 0 :(得分:1)

OnChangeCheck事件属于TNotifyEvent类。其Sender: TObject参数告诉您谁触发了事件。例如,以下代码

procedure TForm19.TreeView1ChangeCheck(Sender: TObject);
begin
  ShowMessage(Sender.ToString);
end;

可能显示TTreeViewItem 'TreeViewItem5'

或者,如果您想更改该项目的属性,

procedure TForm19.TreeView1ChangeCheck(Sender: TObject);
begin
  if Sender is TTreeViewItem then
    if TTreeViewItem(Sender).IsChecked then
      TTreeViewItem(Sender).Text := 'Checked'
    else
      TTreeViewItem(Sender).Text := 'Not checked';
end;

或者,如果您确实想要该项目的索引:

  ShowMessage(IntToStr((Sender as TTreeViewItem).Index));
相关问题