No veo nada fuera de lo normal, si quieres darle otro enfoque pueba esto:
Código Delphi
[-]
procedure TFConfigIP.FormShow(Sender: TObject);
begin
if (PermissionsService.IsPermissionGranted(JStringToString(TJManifest_permission.JavaClass.READ_EXTERNA L_STORAGE))= false) or (PermissionsService.IsPermissionGranted(JStringToString(TJManifest_permission.JavaClass.WRITE_EXTERN AL_STORAGE))= false) then
PermisoEscrituraLectura
else
Servidor;
end;
procedure TFConfigIP.PermisoEscrituraLectura;
begin
PermissionsService.RequestPermissions([JStringToString(TJManifest_permission.JavaClass.READ_EXTERNAL_STORAGE), JStringToString(TJManifest_permission.JavaClass.WRITE_EXTERNAL_STORAGE)],
procedure(const APermissions: TArray<string>; const AGrantResults: TArray)
begin
if (Length(AGrantResults) = 2) and (AGrantResults[0] = TPermissionStatus.Granted) and (AGrantResults[1] = TPermissionStatus.Granted) then
begin
ShowMessage( 'Permiso concedido.');
Servidor;
end
else
ShowMessage( 'Permiso denegado.');
end)
end;
procedure TFConfigIP.Servidor;
var
sFile: String;
begin
sFile:= SDCARD + 'Server.csv'; if (FileExists(sFile)) then
CargaServer(sFile)
else
begin
ShowMessage( sFile + ', no encontrado. lo crearemos.');
FTP_Server;
end;
end;
Saludos.