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;
有一些問題存在: