FMX TListbox中的项目选择不正确(Grid Metropolis UI)

时间:2015-07-30 12:05:36

标签: delphi listbox microsoft-metro firemonkey selecteditem

我遇到了一个问题,即在我的应用中TListBox中选择了不正确的项目,表单中有HorzScrollBox。表单上有两个(或更多)TListBox。它们彼此远离,使得它们的绝对左坐标差异大于当前设备屏幕宽度的宽度。该错误出现在以下用户操作序列中。

  1. 从左侧TListBox
  2. 中选择一个项目
  3. HorzScrollBox向右滚动,第二个TListBox对用户可见,左侧为隐形。
  4. HorzScrollBox向左滚动。
  5. 从左侧TListBox中选择了一个新项目。
  6. 我们得到以下图片: 选择了新项目,但即使我们上下滚动框,选择也会保留在先前所选项目的位置上。 enter image description here

    可以以非常简单的方式重现错误。

    1. 创建一个新的Grid MetropolisUI应用程序。
    2. 用新标准替换左标准TListBox(它会更快)。
    3. 将表单的宽度设置为大于屏幕宽度
    4. 将第二个新的TListBox置于HorzScrollBox内,以便不会同时看到左右TListboxes,只有在滚动{{}后才能选择项目{1}}。
    5. 从任何来源填充它们(例如两个HorzScrollBox)并将创建的TPrototypeBindSource的{​​{1}}属性设置为ListItemStyle
    6. 完成。当您运行该应用程序时,您会遇到问题。只有当您滚动LinkFieldControlToField时,才会显示该错误,以便您在第一个项目中选择项目时看不到第二个MetropolisUI。否则,正确选择项目(即使您滚动HorzScrollBox)。 这是表单的资源(除了样式的二进制文件,它需要存在以重现该错误)。

      ListBox

      有人有任何建议如何应对吗?

1 个答案:

答案 0 :(得分:1)

我通过设置ListBox1.CanFocus := false;找到答案。在某些情况下(后面),错误再次发生。