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

Лидеры

  1. gonzales

    gonzales

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


    • Баллы

      1

    • Постов

      334


  2. c_breaker

    c_breaker

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


    • Баллы

      1

    • Постов

      12


  3. Евгений Корепов

    Евгений Корепов

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


    • Баллы

      1

    • Постов

      738


  4. kami

    kami

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


    • Баллы

      1

    • Постов

      643


Популярный контент

Показан контент с высокой репутацией 06.02.2019 во всех областях

  1. Паршенко Виктор

    ClientWidth и ClientHeight

    клиентские размеры есть у TCommonCustomForm (в следствии и у наследников, TForm) FWinService: IFMXWindowService; ... function TCommonCustomForm.GetClientHeight: Integer; begin Result := round(FWinService.GetClientSize(Self).Y); end; function TCommonCustomForm.GetClientWidth: Integer; begin Result := round(FWinService.GetClientSize(Self).X); end;
    1 балл
  2. gonzales

    PUSH и Android8

    Нашел причину, в API 26 формирование уведомления строится по другому. https://startandroid.ru/ru/uroki/vse-uroki-spiskom/515-urok-190-notifications-kanaly.html Перевел приложение на API 25 и все заработало как надо. Подозреваю, что для работы пушей в API 26 нужно обновить саму делфу. (у меня сейчас берлин)
    1 балл
  3. kami

    Поток в Android-е

    Тут нет кода, выполняемого в доп.потоке. Метод Synchronize делает следующее: "приостановить выполнение себя (т.е. доп.потока), переключиться в основной поток, выполнить там действие и после этого вернуться в себя (в доп.поток)". Ввиду того, что в коде доп.потока есть только synchronize - то единственное, что поток делает - ждёт, пока выполнится его действие в основном потоке. То есть - является абсолютно бессмысленным.
    1 балл
  4. у формы есть событие FormVirtualKeyboardShown, где можно в общем обработать событие показа\скрытия клавиатуры. там и флаг есть KeyboardVisible. а в частности, для конкретного поля показывать\скрывать вот так можно как вариант: procedure Tform1.Memo1Tap(Sender: TObject; const Point: TPointF); var KeyboardService: IFMXVirtualKeyboardService; begin if TPlatformServices.Current.SupportsPlatformService(IFMXVirtualKeyboardService, IInterface(KeyboardService)) then // Запрашиваем сервис виртуальной клавиатуры KeyboardService.HideVirtualKeyboard; //KeyboardService.ShowVirtualKeyboard(Memo1); для показа end;
    1 балл
  5. Задался вопросом, нашел ответ, может кому пригодится. uses Androidapi.JNI.Media, Androidapi.Helpers, Androidapi.JNIBridge, AndroidApi.Jni.JavaTypes, Androidapi.JNI.GraphicsContentViewText; .... procedure TFormMain.PlaySoundEffects(const ASoundID : Integer; AVolume : Single = 1.0); var AudioObj: JObject; Audio: JAudioManager; begin AudioObj:= TAndroidHelper.Context.getSystemService(TJContext.JavaClass.AUDIO_SERVICE); Audio:= TJAudioManager.Wrap((AudioObj as ILocalObject).GetObjectID); Audio.loadSoundEffects; Audio.playSoundEffect(ASoundID, AVolume); end; Константы звуковых эффектов тут https://developer.android.com/reference/android/view/SoundEffectConstants Правда у меня только звук "чпок" на всех константах. Но мне он и был нужен )
    1 балл
  6. Может кому поможет - проблема решилась использованием андроидовского SoundPool: создание: FSoundPool := TJSoundPool.JavaClass.init(10, TJAudioManager.JavaClass.STREAM_MUSIC,0); добавление звуков: FSoundPool.load(StringToJString(FileName),1); проигрывание: FSoundPool.play(i,1,1,0,0,1);
    1 балл
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...