-
Постов
64 -
Зарегистрирован
-
Посещение
Активность репутации
-
neo отреагировална AngryOwl в Как убрать клаву по окончанию ввода в TEdit ?
uses
FMX.VirtualKeyboard, FMX.Platform,
...
var
Keyboard: IFMXVirtualKeyboardService;
begin
if TPlatformServices.Current.SupportsPlatformService( IFMXVirtualKeyboardService, IInterface( Keyboard ) ) then
Keyboard.HideVirtualKeyboard;
end;
-
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
-
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); После этих манипуляций видео стало растягивать под контрол.
-
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;
-
neo получил реакцию от #WAMACO в Читалка текста. Нет звука (speech.tts)
только посл строка не определялась заменил
//TAndroidHelper.Activity.startActivity(Intent); SharedActivity.startActivity(Intent); тк у меня XE8
-
neo получил реакцию от Равиль Зарипов (ZuBy) в Читалка текста. Нет звука (speech.tts)
только посл строка не определялась заменил
//TAndroidHelper.Activity.startActivity(Intent); SharedActivity.startActivity(Intent); тк у меня XE8
-
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" -
neo отреагировална bigjorj в [Android] Как отключить кнопку меню [...]?
Простой поиск по форуму моментально дает ответ на ваш вопрос:
[Android] Как отключить программную кнопку Меню?
-
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. Кто придёт?) -
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/
-
neo отреагировална Равиль Зарипов (ZuBy) в В Android не работает Destroy/Hide/Deactive
например при сворачивании/выходе из программы и прочие события из-за которых приложению нужно сохранить данные
-
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