Wenn du da noch eingreifen willst, dann würde ich das so umsetzen:
Delphi-Quellcode:
procedure TMainDlg.LVDeletingItem(Sender: TObject; AIndex: Integer;
var ACanDelete: Boolean);
var
lv: TListView;
begin
// erstmal ablehnen
ACanDelete := false;
lv := TListView(Sender);
TDialogService.PreferredMode := TDialogService.TPreferredMode.Platform;
TDialogService.MessageDialog(txt_DeleteItem, System.UITypes.TMsgDlgType.mtConfirmation,
[System.UITypes.TMsgDlgBtn.mbYes, System.UITypes.TMsgDlgBtn.mbNo],
System.UITypes.TMsgDlgBtn.mbYes, 0,
procedure(const AResult: TModalResult)
var
li: TListViewItem;
itemNo: integer;
begin
Case AResult of
mrYes: begin
li := lv.Items[AINdex];
itemNo := li.Data['i'].AsInteger;
EntryList.Delete(itemNo);
// und dann manuell löschen
lv.Items.Delete(AIndex);
end;
End;
end);
end;