如何更改ListBoxItems的突出显示外观



每当选择ListboxItem时,我都希望所选列表框项目的外观发生变化(突出)。下面是我的代码。它工作正常,正如我所期望的那样,除非我向下滚动列表框,然后尝试选择另一个ListBoxItem。然后,有些项目的外观根本没有改变,有些项目没有取消高亮显示,或者应用程序崩溃,等等。为什么??

用于移动iOS应用程序的Delphi XE5。

procedure TForm5.ListBoxItem1Click(Sender: TObject);
var
  Item : TListBoxItem;
  C : TColorBox;
  T : TText;
  i : Integer;
begin
  i := 0;
  while i <> ListBox1.Items.Count do begin
    Item := ListBox1.ListItems[i];
    T := Item.Children[1] as TText;
    C := Item.Children[2] as TcolorBox;
    T.Color := TAlphaColors.Black;
    C.Visible := False;
    i := i +1;
  end;
  Item := Sender as TListBoxItem;
  T := Item.Children[1] as TText;
  C := Item.Children[2] as TcolorBox;
  T.Color := TAlphaColors.White;
  C.Visible := True;
end;

跟踪所选单元格。当用户选择另一个单元格时,请确保重新绘制以前选择的单元格,然后绘制新选择的单元格。

伪代码:

class property: currentCell
onCellSelection:
previousCell = currentCell
currentCell = selectedCell
redrawCells:[previousCell,currentCell]

您的单元格绘图代码应考虑currentCell属性是否应绘制为hilighted。

相关内容

  • 没有找到相关文章

最新更新