API:FMX.ListView.TListView.OnDeletingItem

提供: RAD Studio API Documentation
移動先: 案内検索

Delphi

property OnDeletingItem: TListViewBase.TDeletingItemEvent read FOnDeletingItem write FOnDeletingItem;

C++

__property OnDeletingItem;

プロパティ

種類 可視性 ソース ユニット
event published
FMX.ListView.pas
FMX.ListView.hpp
FMX.ListView TListView

説明

ユーザーがリスト ビュー項目の削除を要求した際に、その削除が実施された前に発生します。

FMX.ListView.TListView.OnDeletingItem は FMX.ListView.TListViewBase.OnDeletingItem を継承しています。以下の内容はすべて FMX.ListView.TListViewBase.OnDeletingItem を参照しています。

ユーザーがリスト ビュー項目の削除を要求した際に、その削除が実施された前に発生します。 このイベントに対してイベント ハンドラを定義すると、自分の条件に従い、削除の実施を抑制することができます。

このイベントのイベント ハンドラには、次のパラメータがなければなりません:

  • Sender - リスト ビュー
  • AIndex - 削除するリスト ビュー項目のインデックス
  • ACanDelete - このリスト ビュー項目が削除されるかどうかを決定する変数

想定外の削除を回避するには、イベント ハンドラで ACanDeleteFalse を設定します。

次のコード スニペットでは、項目を削除する前に、確認のためのダイアログ ボックスを表示します。 キャンセルをクリックすると、ACanDeleteFalse に設定され、リスト ビュー項目の削除がキャンセルされます:

Delphi:

procedure TMainForm.ListViewDeletingItem(Sender: TObject; AIndex: Integer; var ACanDelete: Boolean);
var
  Input: Integer;
begin
  Input := TDialogServiceSync.MessageDialog(
    'Are you sure that you want to remove "' +
        (Sender as TListView).Items[AIndex].Text + '" from the list?',
    TMsgDlgType.mtConfirmation, mbOKCancel, TMsgDlgBtn.mbOK, 0);
  if Input = 2 then // Cancel
    ACanDelete := False;
end;

C++:

void __fastcall TMainForm::ListViewDeletingItem(TObject *Sender, int AIndex, bool &ACanDelete)
{
  TListView* list = reinterpret_cast<TListView*>(Sender);
  int input = TDialogServiceSync::MessageDialog(
      "Are you sure that you want to remove \"" +
          list->Items->Item[AIndex]->Text + "\" from the list?",
      TMsgDlgType::mtConfirmation, mbOKCancel, TMsgDlgBtn::mbOK, 0);
  if (input == 2) { // Cancel
        ACanDelete = false;
  }
}

関連項目