OK, wenn das auch unter den mobilen Plattformen verwendet werden soll, ist das Beispiel ungünstig, da man dann eh besser vom Parent-Object die vorgesehen Lösch-Funktionen verwendet.
Ein direktes Free des ListboxItems hat wegen AutoRefCount unter den mobilen Plattformen sowieso nicht die erwünschte Auswirkung. Hier müsste man also ListBox1.items.delete(index) verwenden. Das wird dann anders als unter Windows behandelt und das System kümmert sich dann um die tatsächliche Entfernung des Eintrags zum passenden Zeitpunkt.
Ich hab es mal kurz hier getestet, diese Variante funktioniert hier unter Windows und Android, hier das Android-OnTap-Event:
Delphi-Quellcode:
procedure TForm46.lbiTap(Sender: TObject; const Point: TPointF);
var
tt: TTask;
lbi: TListBoxItem;
begin
if TFmxObject(Sender).Parent is TListBoxItem then
begin
lbi := TListBoxItem(TFmxObject(Sender).Parent);
TTask.run (procedure
begin
TThread.Synchronize(NIL, procedure
begin
Listbox1.Items.Delete(lbi.Index);
end);
end);
end;
end;