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

时间:2013-12-02 15:59:11

标签: ios delphi delphi-xe5

每当选择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;

1 个答案:

答案 0 :(得分:0)

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

伪代码:

class property: currentCell

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

您的单元格绘图代码应考虑currentCell属性是否应该绘制为高亮显示。