1

以下代码在 firemonkey ListView 的 ItemClickEx 事件中运行。我想知道如何在 C++ 中做到这一点。

procedure TfrmCategory.lstListCategoryItemClickEx(const Sender: TObject; 
                         ItemIndex: Integer; const LocalClickPos: TPointF;
    const ItemObject: TListItemObject);

begin
    if ItemObject is TListItemAccessory then
     begin
      ShowMessage('Acessory clicked');
     end;

end;

来源:链接在这里。

我不知道如何在 C++ 中执行“如果 ItemObject 是 TListItemAccessory”。

4

2 回答 2

1

与 Delphi 的is运算符等效的 C++ 是dynamic_cast,例如:

void __fastcall  TfrmCategory::lstListCategoryItemClickEx(const TObject *Sender,
    int ItemIndex, const TPointF &LocalClickPos, const TListItemObject* ItemObject)
{
    if (dynamic_cast<const TListItemAccessory*>(ItemObject))
        ShowMessage(L"Acessory clicked");
}
于 2018-04-15T05:16:30.807 回答
0

好的,看起来很简单:

  if (ItemObject->Name == "I") {
     ShowMessage("Item Image clicked");
  }
  if (ItemObject->Name == "T") {
     ShowMessage("Item Text clicked");
  }
  if (ItemObject->Name == "A") {
     ShowMessage("Item Accessory clicked");
  }

这适用于 iOS 以及 Win。

于 2018-04-15T03:16:41.017 回答