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

neo

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

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

  • Посещение

Активность репутации

  1. Like
    neo отреагировална AngryOwl в Как убрать клаву по окончанию ввода в TEdit ?   
    uses
      FMX.VirtualKeyboard, FMX.Platform, 
    ...
    var
      Keyboard: IFMXVirtualKeyboardService;
    begin
      if TPlatformServices.Current.SupportsPlatformService( IFMXVirtualKeyboardService, IInterface( Keyboard ) ) then
        Keyboard.HideVirtualKeyboard;
    end;
     
  2. Like
    neo отреагировална AlexShaman в Как получить от виртуальной клавиатуры символ который был введен?   
    Нашел готовое решение, переделал немного (Berlin).
    Используя это решение можно получать символы от вирт клавиатуры.
    Регистрация клавиатуры SetMyVirtualKeyboard(const AControl: TFmxObject), где AControl - компонент обрабатывающий события OnKeyUp
    procedure SetMyVirtualKeyboard(const AControl: TFmxObject); begin {$IFDEF ANDROID} if FNativeVKService <> nil then Exit; if not Assigned(FMyVirtualKeyboardAndroid) then begin FMyVirtualKeyboardAndroid := TVirtualKeyboardAndroidEx.Create; FMyVirtualKeyboardAndroid.OnKeyUp := TForm(AControl).OnKeyUp; end; FNativeVKService := IFMXVirtualKeyboardService(TPlatformServices.Current.GetPlatformService(IFMXVirtualKeyboardService)); if FNativeVKService <> nil then begin TPlatformServices.Current.RemovePlatformService(IFMXVirtualKeyboardService); end; TPlatformServices.Current.AddPlatformService(IFMXVirtualKeyboardService, FMyVirtualKeyboardAndroid); {$ENDIF} end; Вызов клавиатуры стандартно
    TPlatformServices.Current.SupportsPlatformService( IFMXVirtualKeyboardService, IInterface(aVirtualKeyboardService)); if (aVirtualKeyboardService <> nil) then aVirtualKeyboardService.ShowVirtualKeyboard(fMain); Скрытие, тоже стандартно
    if (key=13) then begin //если нажата клавиша enter if TPlatformServices.Current.SupportsPlatformService(IFMXVirtualKeyboardService, IInterface(aVirtualKeyboardService)) then aVirtualKeyboardService.HideVirtualKeyboard; end;  
     
     
    MyFMX.VirtualKeyboard.Android.rar
  3. Like
    neo отреагировална cezif в Существует ли способ растягивания видео до нужных размеров под Windows?   
    Спасибо за подсказку, в вообщем-то получилось. Сделал так:
     
    Создал отдельный каталог, скопировал туда модуль FMX.Media.Win.pas, FMX.Controls.Win.res, FMX.Filter.res (без последних двух проект не компилировался) Внес каталог в Tools - Options - Library - Library path В модуле FMX.Media.Win.pas в процедуре TWindowsMedia.UpdateMediaFromControl первой строкой в коде добавил добавление масштабирования: procedure TWindowsMedia.UpdateMediaFromControl; var P: TPointF; R: TRect; Bounds: TRectF; Form: TCommonCustomForm; begin FVMRWindowlessControl.SetAspectRatioMode(VMR9ARMode_LetterBox); // <-- Добавить if FWnd <> 0 then .... далее в коде закомментировал строку:
    Bounds := TRectF.Create(0, 0, P.X, P.Y); вместо P.X и P.Y (Ширина и высота видео) - ввел ширину и высоту контрола:
    Bounds := TRectF.Create(0, 0, Control.AbsoluteWidth, Control.AbsoluteHeight); После этих манипуляций видео стало растягивать под контрол.
  4. Thanks
    neo отреагировална sinuke в Как правильно сделать цикл?   
    Я так понимаю, что у Вас есть "массив" из 20 элементов, который нужно сформировать (перемешать) в произвольном порядке. Так?
    Я для похожих целей пользуюсь следующим:
    var a: array [0 .. 19] of Integer; i, j, k: Integer; begin //Заполняем начальными данными for i := Low(a) to High(a) do a[i] := i; //Перемешиваем for i := High(a) downto 1 do begin j := Random(i - 1); if i <> j then begin //Меняем местами элементы k := a[j]; a[j] := a[i]; a[i] := k; end; end; end;  
  5. Like
    neo получил реакцию от #WAMACO в Читалка текста. Нет звука (speech.tts)   
    только посл строка не определялась заменил
    //TAndroidHelper.Activity.startActivity(Intent); SharedActivity.startActivity(Intent); тк у меня XE8
  6. Like
    neo получил реакцию от Равиль Зарипов (ZuBy) в Читалка текста. Нет звука (speech.tts)   
    только посл строка не определялась заменил
    //TAndroidHelper.Activity.startActivity(Intent); SharedActivity.startActivity(Intent); тк у меня XE8
  7. Like
    neo получил реакцию от Brovin Yaroslav в [Android] Как отключить кнопку меню [...]?   
    не знал как сформировать запрос) тк хз как она называется)
     
    [Android] Как отключить программную кнопку Меню?

    Итог

    Открываете файл AndroidManifest.template.xml. Он лежит в папке с вашим проектным файлом (появляется при первой попытке компиляции на Андроид)

    было
    <uses-sdk android:minSdkVersion="%minSdkVersion%" android:targetSdkVersion="%targetSdkVersion%" /> стало
    <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="14" /> добавить |screenSize

    сюда
    android:configChanges="orientation|keyboardHidden|screenSize"
  8. Like
    neo отреагировална bigjorj в [Android] Как отключить кнопку меню [...]?   
    Простой поиск по форуму моментально дает ответ на ваш вопрос:
     
    [Android] Как отключить программную кнопку Меню?
  9. Like
    neo отреагировална Andrey Efimov в [Событие] Мировой тур RAD Studio 10 Seattle   
    Места проведения и даты: Москва (24.09.15), Алматы (2.10.15) Официальный сайт мероприятия: http://www.delphitour.ru Регистрация: http://forms.embarcadero.com/EM15Q3RURADStudio10LiveEvent  
    Приглашаем вас принять участие в Мировом туре RAD Studio XE10 Seattle, который пройдет 24 сентября в Москве и 2 октября в Алматы.   Мы расскажем о том как, с помощью новых возможностей RAD Studio 10 вы сможете: Разрабатывать приложения для Windows 10 и использовать новые компоненты VCL; Ускорить разработку мобильных приложений для Android и iOS (отлаживать iOS 64-bit, тестировать кода); Использовать новый компилятор C++ 11 CLANG; Эффективно использовать среду разработки и новые возможности GetIt; Создавать приложения для «Internet of Things» и Beacons; Применять новые возможности FIreDAC для расширенной поддержки JSON и BSON; Быстрее создавать приложения для работы с NoSQL СУБД MongoDB с помощью новых компонент, классов, реализующих  MongoDB API, и нового драйвера FireDAC для MongoDB. Количество мест ограничено!   Участие в мероприятии бесплатное.   p.s. Решил подменить Ярослава. p.s.2. Кто придёт?)
  10. Like
    neo отреагировална neo в Кодировка под Android   
    итак расскажу о своём опыте... вдруг кому-то будет полезно

    попробовал максимально простым способом записать/считать строку в файле
     
    procedure WriteToFile(s: String); var   f: TMemoryStream; begin   f:=TMemoryStream.Create;   try     f.Write(S[1], Length(s));     f.SaveToFile(TPath.GetDocumentsPath + PathDelim +'access.key');   finally     f.Free;   end; end; function GetTextFromFile: string; begin   with TStringStream.Create do   try     LoadFromFile(TPath.GetDocumentsPath + PathDelim +'access.key');     Result:=DataString;   finally     Free;   end; end; но тоже ничего не получилось...
    в XE8 под android нету ShortString и AnsiString
    поэтому скачал их отдельно и изменил на WriteToFile(s: ShortString);
    и всё заработало...

    не понятно только зачем их убрали? и как сдалать без них?
     
    вот ссылка на ShortString и AnsiString http://www.fmxexpress.com/use-ansistring-and-utf8string-in-delphi-xe5-firemonkey-on-android-and-ios/
  11. Like
    neo отреагировална Равиль Зарипов (ZuBy) в В Android не работает Destroy/Hide/Deactive   
    например при сворачивании/выходе из программы и прочие события из-за которых приложению нужно сохранить данные
  12. Like
    neo отреагировална AngryOwl в [TCameraComponent] [XE7] Как поменять разрешение получаемой картинки через CameraComponent?   
    Замените у себя модуль FMX.Media.Android.pas (файлик прилагаю)
    смотрите в нем новые свойства и процедуры
        property VideoWidth: Integer read FVideoWidth write FVideoWidth;     property VideoHeight: Integer read FVideoHeight write FVideoHeight;     property VideoBitCount: Integer read FVideoBitCount write FVideoBitCount;     property VideoFPS: Integer read FVideoFPS write FVideoFPS; // auto constructor TAndroidVideoCaptureDevice.Create(const AManager: TCaptureDeviceManager; const ADefault: Boolean); procedure TAndroidVideoCaptureDevice.SetQuality(const Value: TVideoCaptureQuality); procedure TAndroidVideoCaptureDevice.DoStartCapture; допустим на форме fmMain есть компонент камеры ccMain_Camera, тогда
    предварительно выключим камеру если она включена
    fmMain.ccMain_Camera.Active := False; затем меняем "качество"
    fmMain.ccMain_Camera.Quality := TVideoCaptureQuality.MediumQuality; {включит 640*480} затем включаем камеру
    fmMain.ccMain_Camera.Active := True; типа так можно.
    FMX.Media.Android.zip
     
    З.Ы. и в OnSampleBufferReady надо обрабатывать уже полученное изображение, а не пытаться переключать камеру.
     
    P.P.S. это под XE7
×
×
  • Создать...