Как вы звоните в Delphi 12.2, без ошибок компилятора?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как вы звоните в Delphi 12.2, без ошибок компилятора?

Сообщение Anonymous »

Я пытаюсь написать следующий кодовый блок, который, по-видимому, сталкивается с проблемой сравнения типа компилятора, независимо от того, что я делаю.

Код: Выделить всё

uses
Fmx.Types,
System.Permissions,
androidapi.Helpers, // JStringToString
androidapi.JNI.JavaTypes,
androidapi.JNI.Os,  // isExternalStorageManager etc
...
+
PermissionsService.RequestPermissions(

[
JStringToString(TJManifest_permission.JavaClass.READ_EXTERNAL_STORAGE),
JStringToString(TJManifest_permission.JavaClass.WRITE_EXTERNAL_STORAGE),
JStringToString(TJManifest_permission.JavaClass.MANAGE_EXTERNAL_STORAGE )
],

{RequestPermission}
procedure (  const APermissions: TClassicStringDynArray; const AGrantResults: TArray {TClassicPermissionStatusDynArray})
begin
if PermissionsService.IsEveryPermissionGranted(AGrantResults) then
ThenDo;

end,

{ExplainReason}
procedure (const APermissions: TClassicStringDynArray; const APostRationaleProc: TProc)
begin
TDialogService.ShowMessage( UserMessage,
procedure(const AResult: TModalResult)
begin
APostRationaleProc;
end)
end

);
< /code>
Проблемная часть-это двухстрочный сегмент: < /p>
      procedure (  const APermissions: TClassicStringDynArray; const AGrantResults: TArray {TClassicPermissionStatusDynArray})
begin
if PermissionsService.IsEveryPermissionGranted(AGrantResults) then
< /code>
Вопрос в том, каким должен быть список параметров анонимного метода и типы?  Если я сделаю AgranTresults 
быть типом tclassicpermissionStatusDynarray , то я не могу назвать resmissionservice.iseverypermissiongranted из -за несоответствия типа, и если я сделаю это Tarray , то составщик не соответствует ни одного из них, чтобы быть вызовом, вызванным по имени. RequestPermissions .
Мне кажется, что что -то может быть плохим в самом RTL, что -то разбитое в Delphi 12.2, которое не было разбито в предыдущих версиях, или что сам компилятор не может распознать, что два псевдонима находятся в псевдониме для того же, что и для того, что есть, это то же самое, что есть для того, чтобы сделать это, так и для того, чтобы сделать это, так же, что есть в каком -то и тот же, что является трэлем
И все же вызовать iseverypermissiongranted , или я должен просто переписать iseverypermissiongranted сам, что является просто вспомогательным методом? Здесь есть что -то еще, что я могу работать с другим синтаксисом или именованием типа?


Подробнее здесь: https://stackoverflow.com/questions/794 ... ler-errors
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»