Hallo,
ich bin fast am Verzweifeln und wende mich daher wieder einmal euch.
Ich habe eine Android App mit einem TListView. Die Einträge kann man mit einem "Swipe" löschen.
Abgesehen davon, dass der "Delete" Button in der Liste hässlich aussieht (anderes Thema), bekomme ich es nicht hin, VOR dem tatsächlichen Löschen des Eintrags eine Abfrage einzublenden, um das Löschen zur Not abzubrechen.
Delphi-Quellcode:
procedure TMainDlg.LVDeletingItem(Sender: TObject; AIndex: Integer;
var ACanDelete: Boolean);
begin
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
itemNo: integer;
LI: TListViewItem;
begin
Case AResult of
mrYes: begin
LI := MainDlg.LV.Items[AIndex];
itemNo := LI.Data['i'].AsInteger;
EntryList.Delete(itemNo);
end;
mrNo: begin
ACanDelete := false;
end;
End;
end);
end;
Hier kommt die Fehlermeldung: E2555 Symbol 'ACanDelete' kann nicht erfasst werden
Also habe ich versucht, es anders zu übergeben.
Delphi-Quellcode:
procedure TMainDlg.LVDeletingItem(Sender: TObject; AIndex: Integer;
var ACanDelete: Boolean);
var
myCanDelete : Boolean;
begin
myCanDelete := false;
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
itemNo: integer;
LI: TListViewItem;
begin
Case AResult of
mrYes: begin
myCanDelete := true;
LI := MainDlg.LV.Items[AIndex];
itemNo := LI.Data['i'].AsInteger;
EntryList.Delete(itemNo);
end;
mrNo: begin
myCanDelete := false;
end;
End;
end);
ACanDelete := myCanDelete;
end;
Hier ist aber das Problem, dass die Meldung zwar erscheint, aber der Eintrag schon vorher gelöscht wird.
Auch
TDialogServiceSync
kann unter Android nicht verwendet werden.
Habt ihr eine Idee, wie man es abfangen könnte oder hat jemand schon einen Code? Ich denke mal, das wird ja einige betreffen, die Listviews verwenden...