每当选择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;
答案 0 :(得分:0)
跟踪您选择的单元格。当用户选择另一个时,请确保重绘先前选择的单元格,然后绘制新选择的单元格。
伪代码:
class property: currentCell
onCellSelection:
previousCell = currentCell
currentCell = selectedCell
redrawCells:[previousCell,currentCell]
您的单元格绘图代码应考虑currentCell属性是否应该绘制为高亮显示。