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