TDialogService.MessageDialog() is asynchronous on Android, per the documentation, so the dialog won't appear until after SpeedButton5Click() has exited. As such, your code is trying to use the Reply variable before it has actually been assigned a value, which is why StartLogin10() is not being called.
Android simply does not support modal dialogs, and so the RTL does not implement any synchronous dialogs on Android. See Using FireMonkey Modal Dialog Boxes, TCommonCustomForm.ShowModal(), and IFMXWindowService.CanShowModal() for more details.
You need to move the call to StartLogin10() inside the MessageDialog() callback, eg:
procedure TFrmLogin.SpeedButton5Click(Sender: TObject);
begin
if (lst2.Items.Count <> 0) and (lst2.ItemIndex <> -1) then
begin
TDialogService.MessageDialog('you are gonna edit something ', TMsgDlgType.mtInformation, [TMsgDlgBtn.mbYes], TMsgDlgBtn.mbYes,0,
procedure(const AResult: TModalResult)
begin
if AResult = mrYes then
StartLogin10
else
ShowMessage('you have cancel the operation');
end
);
end else
ShowMessage('chose something from the list');
end;