如何将TreeViewItem带入可见(滚动)区域

时间:2019-06-12 14:12:43

标签: delphi firemonkey delphi-10.3-rio

我正在寻找一种通过代码导航到树状视图中的项目的方法。该对象应移至可见区域。我在TTreeView或TTreeViewItem中都找不到方法。

以下方法并非在所有情况下都行得通,因为项目位置并非总是更新:

procedure TfmxMain.MakeItemVisible(Item: TTreeViewItem);
begin
  trvMyTreeView.ViewportPosition :=
    TPointF.Create(min(Item.Position.X - trvSlideGroups.ClientWidth / 2, 0),
     min(Item.Position.Y - trvSlideGroups.ClientHeight / 2, 0));
end;

1 个答案:

答案 0 :(得分:1)

对FMX.TreeView进行深入分析后,我找到了一个简单的解决方案:

fig = plt.figure(figsize=(12,6))
ax1 = fig.add_subplot(1,4,1)
ax2 = fig.add_subplot(1,4,2)
ax3 = fig.add_subplot(1,4,3)

fig.subplots_adjust(wspace = 0.6)

#...
#...

ax1.bar(d.index, bar_heights, color = my_colors)
ax1.set_title("ax1")

ax2 = sns.countplot(x="Survived",data= raw_dataset)
ax2.set_title("ax2")

raw_dataset["Survived"].value_counts().plot(ax=ax3, kind="bar")
ax3.set_title("ax3")

plt.show()

此简单操作调用了内部方法procedure TfmxMain.MakeItemVisible(Item: TTreeViewImageItem); begin Item.Deselect; Item.Select; end; ,该方法将所选项目移动到可见区域。