得到与按钮列表视图中的每一项单击

问题描述:

我用delphi 10.1标准的TListView VCL得到与按钮列表视图中的每一项单击

生病尝试和exmple是更好,但我不是在说对不起OK很不错的说,我有标准的ListView

有下列顺序

  1. 肯白,
  2. 大卫·赫弗南,
  3. 西蒙·刘易斯,
  4. 在它的项目

现在我有两个按钮来回和前进,当我按下前进按钮时,它会得到列表中的第一个项目肯怀特,如果我继续按下按钮,它将沿列表直到它到达西蒙或最后一项。

现在它对于后退按钮是相同的,但是它会反过来从底部到顶部直到回到Ken White。

很抱歉,如果它没有多大意义的拼写不是我的东西CHAPS歉意诵读困难

+3

这是一个标准的TListView或其他东西?另外,包括这是VCL还是Firemonkey(它有所不同)。请[编辑]您的帖子以阐明这些详细信息,并包含填充示例列表视图的代码。 –

+1

你是否在向前和向后计数挣扎。你有什么具体问题。 –

+0

你不要跑一个循环倒计时,一个倒计时。你知道关于循环。 –

要在TListView向前移动,你可以使用GetNextItem

ListView1.Selected := ListView1.GetNextItem(ListView1.Selected, sdAll, []); 

在上面的'sdAll'指定下一个项目将是其索引高于已选项目的项目。此方法在没有选定项目时选择第一个项目。当最后一个项目已被选中时,在呼叫返回后它将被取消选择。

要走向相反的方向,如果合适,您可以传递'sdLeft'或'sdAbove'而不是'sdAll'。如果没有,因为没有'GetPreviousItem',你必须编写代码来选择其索引低于已选项目的项目。例如:

if not Assigned(ListView1.Selected) then 
    ListView1.Selected := ListView1.Items[ListView1.GetCount - 1] 
else if ListView1.Selected.Index = 0 then 
    ListView1.Selected := nil 
else 
    ListView1.Selected := ListView1.Items[ListView1.Selected.Index - 1]; 

当选择了最后一个项目,你按你向前无所求发生你可能有,如果你想不同的行为,修改代码,例如。

+0

感谢那个sertac :) –