Firemonkey ListView 的點擊事件一直讓人摸不著頭緒(各平台觸發規則不太相同),因為它提供了點擊相關的事件就有如下:
下例將 Item.Apperance 設定為 Custom。

可獲取每一個單項的事件觸發:

參考代碼:
procedure TForm1.ListView1ItemClickEx(const Sender: TObject; ItemIndex: Integer;
const [Ref] LocalClickPos: TPointF; const ItemObject: TListItemDrawable);
begin
if ItemObject is TListItemText then Label1.Text := 'OnItemClickEx_Text_' + ItemIndex.ToString else
if ItemObject is TListItemImage then Label1.Text := 'OnItemClickEx_Image_' + ItemIndex.ToString else
if ItemObject is TListItemAccessory then Label1.Text := 'OnItemClickEx_Accessory_' + ItemIndex.ToString;
end;
procedure TForm1.ListView1ButtonClick(const Sender: TObject;
const AItem: TListItem; const AObject: TListItemSimpleControl);
begin
if AObject is TListItemGlyphButton then Label1.Text := 'OnButtonClick_GlyphButton_' + AItem.Index.ToString else
if AObject is TListItemTextButton then Label1.Text := 'OnButtonClick_TextButton_' + AItem.Index.ToString;
end;
有一些問題存在: