Перейти к содержанию
Fire Monkey от А до Я

OnePeople

Пользователи
  • Постов

    321
  • Зарегистрирован

  • Посещение

  • Победитель дней

    55

Весь контент OnePeople

  1. ? TAnimator.AnimateFloatWait не устаревший, он с ремаркой "не использовать на андроид".
  2. Что хотите) Можете переделать логику через AnimateFloatDelay Можете через потоки и синхронизацию Можете через аниматоры и событие OnFinished
  3. В андроид не работает AnimateFloatWait, так как не работает Application.ProcessMessages;
  4. Intent selectorIntent = new Intent(Intent.ACTION_SENDTO); selectorIntent.setData(Uri.parse("mailto:")); final Intent emailIntent = new Intent(Intent.ACTION_SEND); emailIntent.putExtra(Intent.EXTRA_EMAIL, new String[]{"address@mail.com"}); emailIntent.putExtra(Intent.EXTRA_SUBJECT, "The subject"); emailIntent.putExtra(Intent.EXTRA_TEXT, "The email body"); emailIntent.setSelector( selectorIntent ); activity.startActivity(Intent.createChooser(emailIntent, "Send email..."));
  5. В чем разница между человеком и ногой?
  6. Все проще Target - Android - Libraries -Revert System Files to Default
  7. И еще посмотрите на TStreamWriter logFile: TStreamWriter; logFile.WriteLine('sdrg');
  8. Ну так у вас ошибка вам нужно android.settings.MANAGE_APP_ALL_FILES_ACCESS_PERMISSION для запроса на конкретное приложение, а android.settings.MANAGE_ALL_FILES_ACCESS_PERMISSION это меню для всех. Intent := TJIntent.JavaClass.init; Intent.setAction(StringToJString('android.settings.MANAGE_ALL_FILES_ACCESS_PERMISSION')); TAndroidHelper.Activity.startActivity(Intent); для всех Intent := TJIntent.JavaClass.init; Intent.setAction(StringToJString('android.settings.MANAGE_APP_ALL_FILES_ACCESS_PERMISSION')); Intent.setData(TJnet_Uri.JavaClass.parse(StringToJString('package:').concat(TAndroidHelper.Context.getPackageName))); TAndroidHelper.Activity.startActivity(Intent); Для вашего приложения
  9. В Delphi есть метод для проверки разрешений и ContextCompat не нужен PermissionsService.IsEveryPermissionGranted
  10. try if TJBuild_VERSION.JavaClass.SDK_INT >= 30 then begin if TJEnvironment.JavaClass.isExternalStorageManager = false then begin Intent := TJIntent.Create; Intent:= TJIntent.JavaClass.init(TJSettings.JavaClass.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION); intent.setData(TJnet_Uri.JavaClass.parse(StringToJString('package:').concat(TAndroidHelper.Context.getPackageName))); if intent.resolveActivity(TAndroidHelper.Context.getPackageManager) <> nil then TAndroidHelper.Context.startActivity(Intent); end; end; except end; if TJBuild_VERSION.JavaClass.SDK_INT <= 29 then begin FPermissionReadExternalStorage := JStringToString(TJManifest_permission.JavaClass.READ_EXTERNAL_STORAGE); FPermissionWriteExternalStorage := JStringToString(TJManifest_permission.JavaClass.WRITE_EXTERNAL_STORAGE); PermissionsService.RequestPermissions([FPermissionReadExternalStorage] + [FPermissionWriteExternalStorage], nil); end;
  11. Ну так количество строк то не меняется, меняется отображение этих строк. Код не мой function MeasureTextHeight(const AFont: TFont; const AText: string): Single; var LLayout: TTextLayout; begin LLayout := TTextLayoutManager.DefaultTextLayout.Create; try LLayout.BeginUpdate; try LLayout.WordWrap := False; LLayout.Font.Assign(AFont); LLayout.Text := AText; finally LLayout.EndUpdate; end; Result := LLayout.TextHeight; finally LLayout.Free; end; end; procedure TForm1.Button1Click(Sender: TObject); var LTextHeight: Single; LLines: Integer; begin LTextHeight := MeasureTextHeight(Memo1.TextSettings.Font, Memo1.Text); LLines := Round(Memo1.ContentBounds.Height / LTextHeight); end;
  12. Это набор компонентов, которые кешируются и отрисовываются из кэша, грубо говоря. Все работает очень плавно. Наберите в поиске alcinoe github и почитайте.
  13. <uses-permission android:name="android.permission.RECEIVE_SMS" /> BroadcastReceiver SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED";
  14. Для длинных списков или ListView или alcinoe и делать ListBox с их компонентами. Или попробуйте добавить Skia и включить их отрисовку.
  15. Ну для начала сделайте так varMyItem:TListViewItem;begin ListView1.ApplyStyleLookup;MyItem :=Listview1.Items.Add;MyItem.Data['Text1']:='MyData'; if MyItem.index mod 2 = 0 then TListItemText(MyItem.Objects.FindDrawable('Text1')).TextColor := TAlphaColorRec.Gold else TListItemText(MyItem.Objects.FindDrawable('Text1')).TextColor := TAlphaColorRec.Black;end; Но update тоже надо
  16. По имени TListItemText(MyItem.Objects.FindDrawable('Text1')).TextColor := AppSettings.TextGeneralColor; По номеру в списке элементов дизайнера item TListItemText(MyItem.Objects.Drawables[0]).Font.Style := [TFontStyle.fsBold];
  17. Возможно, как пример про NotificationListner Service https://stackoverflow.com/questions/27962192/is-it-possible-to-read-the-notifications-of-other-applications-on-android-with-d
  18. Ну так это и есть чистая нативная платформа. компонент BluetoothLE написан также. Только тут вы делаете все так, как говорит вам гугл, и избегаете ошибок embarcadero. Браться за android и не уметь писать по справке гугл, то еще занятие, рано или поздно придется.
  19. https://github.com/android/connectivity-samples/tree/master/BluetoothLeGatt/Application/src/main/java/com/example/android/bluetoothlegatt https://habr.com/ru/post/536392/
  20. Я бы не использовал их компоненты Bluetooth. Используйте стандартные рекомендации google.
  21. Проверьте на наличие символов #13 на windows и android они немного по разному переносятся, может у вас там типо такого точно не помню как именно, но например #13 в windows не переносит так как нет #10, а в android переносит, hex редактором проверьте, точно не помню но есть такая байда
  22. Не знаю как вы смотрели, цвет фона кисть selection, только смотрите чтобы цвет был с прозрачностью иначе букв не будет видно
×
×
  • Создать...