如果更改了 CheckBox,如何使用 CheckBoxes 获取 FMX.TreeView 中的项目索引?
How to get Item index in FMX.TreeView with CheckBoxes if CheckBox was changed?
我正在尝试将 FMX.TreeView 与 CheckBox 一起使用,但找不到识别项目的方法,这触发了 TreeViewChangeCheck 事件。
我找到的所有解决方案都是关于 VCL.ComCtrls TreeView with TTreeNode class,但我使用的是 FMX.TreeView.
有人可以帮助我吗?谢谢
OnChangeCheck
事件属于 class 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));
我正在尝试将 FMX.TreeView 与 CheckBox 一起使用,但找不到识别项目的方法,这触发了 TreeViewChangeCheck 事件。
我找到的所有解决方案都是关于 VCL.ComCtrls TreeView with TTreeNode class,但我使用的是 FMX.TreeView.
有人可以帮助我吗?谢谢
OnChangeCheck
事件属于 class 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));