Поиск сообщества
Показаны результаты для тегов 'android'.
Найдено: 263 результата
-
Как избежать повторных нажатий/ закликиваний на кнопку? Имеется следующий код: procedure Tfm.ButtonPrevCardClick(Sender: TObject); begin ButtonPrevCard.Enabled := false; Application.ProcessMessages; // здесь код по смене карты + пауза в 2 секунды ButtonPrevCard.Enabled := true; Application.ProcessMessages; end; Под Windows повторных нажатий/закликиваний при этом не происходит. А под Андроид, если пользователь быстро подряд нажал несколько раз, то сработает также несколько раз.
-
Я использую принудительную ориентацию экрана на Android устройстве. Что это означает? Когда открывается приложение, экран переворачивается в то положение, которое я устанавливаю по умолчанию, или которое было установлено в настройках приложения (состояние читается при запуске приложения). Приведу пример кода, как я его написал. Здесь что-то лишнее, что-то может стоит доработать. Есть две проблемы в примере: 1. Чтобы изменить ориентацию экрана, приходится закрывать (уничтожать) приложение, а потом открывать заново. 2. Когда стоит режим ландшафт, то срабатывает автоматический переворот экрана по сенсору, когда поворачиваешь экран на 180 градусов. А когда стоит режим портрет, автоматически экран не переворачивается. В настройках проекта так: В Object inspector для главной формы так: В модуле проекта вот так: begin Application.Initialize; TAndroidHelper.Activity.getWindow.addFlags (TJWindowManager_LayoutParams.JavaClass.FLAG_KEEP_SCREEN_ON); Application.FormFactor.Orientations := [TFormOrientation.Portrait, TFormOrientation.InvertedPortrait, TFormOrientation.Landscape, TFormOrientation.InvertedLandscape]; Application.CreateForm(TDM, DM); Application.CreateForm(TfmMain, fmMain); VKAutoShowMode := TVKAutoShowMode.Always; Application.Run; end. В модуле главной формы: procedure TfmMain.FormShow(Sender: TObject); begin if DM.setOrientation(TAndroidHelper.Activity) then Invalidate; end; В дата-модуле вот так: function TDM.setOrientation(Activity: JActivity): boolean; var orient: Integer; begin result := False; if DM.GetSettingsBoolean('IsOrientationLandshaft', true) then orient := TJActivityInfo.JavaClass.SCREEN_ORIENTATION_SENSOR_LANDSCAPE else orient := TJActivityInfo.JavaClass.SCREEN_ORIENTATION_SENSOR_PORTRAIT; try if Activity.getRequestedOrientation <> orient then begin Activity.setRequestedOrientation(orient); result := true; end; except result := False; end; end;
-
- Ориентация
- Orientation
-
(и ещё 1 )
C тегом:
-
На устройство с IOS сообщения приходят и через Kinvey и через FCM (Firebase Cloud Messaging). На Android возвращается Token, сами уведомления НЕ приходят.
-
[XE8] Присвоить событие через TMethod в ран-тайме на ANDROID
notricky опубликовал вопрос в Прочие вопросы
Почему-то код, исправно работающий для WIN, не работает на ANDROID. procedure AssignEventToComponent(C: TComponent; MethodName: String; const Evt: TNotifyEvent; OnlyIfNil: boolean = true); var M: TMethod; begin M := GetMethodProp(C,MethodName); if not OnlyIfNil or (M.Code = nil) then begin TNotifyEvent(M) := Evt; SetMethodProp(C,MethodName,M); end; end; Есть какие-то особенности работы TMethod для ANDROID? -
Доброе время суток . Я только начал знакомится с потоками , не судите строго . Вот код . Смысл которого через отдельный поток загружать изображение с сервера . unit Unit5; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,iduri,idhttp, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Objects, FMX.Controls.Presentation, FMX.StdCtrls; type ThreadHTTP=class(TThread) private Stream:TMemoryStream; bmp:tbitmap; url:string; public constructor Create(abmp:tbitmap; aurl: String); procedure Execute;override; // procedure ShowResult; end; type TForm5 = class(TForm) Button1: TButton; Image1: TImage; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } procedure getpic(pic: string; img: Tbitmap); end; var Form5: TForm5; implementation {$R *.fmx} constructor ThreadHTTP.Create(abmp:tbitmap;aurl:string); begin inherited Create(false); bmp := abmp; url:=aurl; end; procedure ThreadHTTP.Execute; var j:integer; idhttp : TIdHTTP; ms:tmemorystream; png:tbitmap; begin ms := TMemoryStream.Create; IdHTTP := TIdHTTP.Create(nil); url:=TIdURI.URLEncode(url); try idhttp.Get(url,ms); ms.Position := 0; finally bmp.LoadFromStream(ms); idhttp.Free; ms.Free; end; end; procedure TForm5.Button1Click(Sender: TObject); begin getpic('krovat1',form5.Image1.Bitmap); end; procedure TForm5.getpic(pic: string; img: Tbitmap); var zapros:string; idhttp:tidhttp; MyHTTP:ThreadHTTP; begin zapros:='http://127.0.0.1/getimage_'+pic; MyHTTP:=ThreadHTTP.Create(img,zapros); MyHTTP.FreeOnTerminate := true; MyHTTP.resume; end; end. Код корявый , но работает в win32 . В Android ничего не происходит . Помогите разобраться , пожалуйста .
-
Пытаюсь опубликовать приложение в Гугл маркет. Присылают ответ на почту. OpenSSL The vulnerabilities were addressed in OpenSSL 1.02f/1.01r. To confirm your OpenSSL version, you can do a grep search for: $ unzip -p YourApp.apk | strings | grep "OpenSSL" You can find more information and next steps in this Google Help Center article. Но ведь я не использую никакой работы с сетью и т.д, только firedac и sqlite
-
Имеется форма с Edit, в котором набран IP-адрес 192.168.1.12 Если попробовать долгим тапом выделить весь текст (для копирования), то выделяется только какая-то одна цифра. Весь текст никак не выделить. Тоже самое будет, если вместо точек поставить любые другие знаки препинания или пробел. Как решить эту проблему?
-
Добрый день. Знаю, что на форуме есть несколько тем о том, как удалять объекты под Android и счетчике ссылок, однако использование рекомендаций оттуда мне пока не помогло. Суть вопроса: создаю свой класс type TRext =class(TRectangle) Text: TText; procedure RextMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single); procedure RextMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single); procedure RextMouseLeave(Sender: TObject); Constructor Create(AOwner: TComponent); override; Destructor Destroy; override; end; type TMyChoose = class Item1, Item2, Item3: TRext; Edits: TEdit; procedure ItemClick(Sender: TObject); procedure OnEditFocus(Sender: TObject; var ACanFocus: Boolean); Constructor Create(Form: TForm); Destructor Destroy; override; end; ..... constructor TRext.Create(AOwner: TComponent); begin inherited Create(AOwner); Text:=TText.Create(Self); Text.Parent:=Self; Text.Align:=TAlignLayOut.Client; Self.Text.OnMouseDown:=RextMouseDown; Self.Text.OnMouseUp:=RextMouseUp; Self.Text.OnMouseLeave:=RextMouseLeave; end; Destructor TRext.Destroy; begin Text.Release; Text:=nil; inherited; end; constructor TMyChoose.Create(Form: TForm); begin inherited Create; Item1:=TRextCreate(Form); Item1.Parent:=Form; Item1.Align:=tAlignLayout.MostLeft; Item2:=TRextCreate(Form); Item2.Parent:=Form; Item2.Align:=tAlignLayout.MostLeft; Item3:=TRextCreate(Form); Item3.Parent:=Form; Item3.Align:=tAlignLayout.MostLeft; Edits:=TEdit.Create(Form); Edits.Parent:=Form; Edits.Align:=tAlignLayout.MostLeft; ......... end; Destructor TMyChoose.Destroy; begin Item1.Release; Item1:=nil; Item2.Release; Item2:=nil; Item3.Release; Item3:=nil; Edits.Release; Edits:=nil; inherited; end; Под Windows все нормально работает и уничтожается. Под Android вызов Destroy у объекта типа TMyChoose не приводит ни к чему. Вместо Release и nil использовал также DisposeOf и Nil, а также FreeAndNil - результат аналогичный. Как правильно уничтожать составные объекты?
- 19 ответов
-
- Nil
- FreeAndNil
- (и ещё 4 )
-
В DelphiXE6, проект под Андроид, на свою форму кладу Mediaplayer, по кнопке задаю ему файл и вызываю метод Play. По окончании проигрывания файла на экране висит либо последний кадр, либо черный экран (на двух устройствах по-разному). Для того чтоб снова увидеть свою форму приходится нажимать вручную системную кнопку "Назад". Как можно сделать чтоб окно проигрывателя скрывалось само и показывалась моя форма без участия пользователя сразу по окончании файла видео?
-
Обещал вам продемонстрировать возможность записи видео в Android. Представляю решение с исходными кодами (VideoRecord.zip) для изучения этой возможности и использования в своих проектах. На представленном снимке есть 2 главных кнопки: "Modal Intent Record" и "Native Record". Modal Intent Record — удобно использовать в приложениях, потому что запись ведется приложением камеры, поставляемым с телефоном. После съемки в приложение возвращается сообщение о результатах — удачно/неудачно. Native Record — метод на базе интерфейса JMediaRecorder, используется, когда Intent Record не подходит. Например в Local Android сервисе ;-) Пользуйтесь на здоровье. Большая просьба к сообществу — помочь в комментариях с подбором оптимальных параметров записи видео в JMediaRecorder. Установленные сейчас параметры 640х480, и качество видео хромает. Нужно научиться переключать камеры, менять степень сжатия, включать/выключать вспышку, звук затвора. Здесь люди уже подбирали варианты параметров, но нужно протестировать на приложении из RAD Studio. На ресурсе разработчиков Android тема по JMediaRecorder находится здесь.
- 7 ответов
-
- JMediaRecorder
- TJMediaRecorder
-
(и ещё 3 )
C тегом:
-
И снова я к Вам за советом, господа. Задачка: пользователь кидает телефон в карман и в фоновом режиме программа сама проверяет каждые секунд 15 наличие новой строки в стринглисте, который цепляется с файла и пытается отправить http запрос. Как мне до этого подсказали копать надо в сторону сервисов. Что же, начал: создал сервис, прицепил к приложению, кинул на него таймер и http от indy, написал кучу кода. Как итог - сервис виден в процессах но таймер не срабатывает и ничего не происходит (запускаю приложение, что бы запустить сервис, выхожу из него и жду проверяя данные на сервере). Но происходит совсем ничего. Туда ли я вообще полез или это нужно реализовывать как то иначе? Стоит local сервис, может проблема в этом? Ниже в темах писали что таймер не работает или еще что, при компиляции ничего не ругается, хотя условий там море и т.д. Все данные которые мне нужно отправить цепляются из текстовых файлов и далее в TStringList.. Понятное дело что такой сервис будет жрать батарейку и кучу трафика, но они так и так тратятся пользователем в "ручном" режиме
-
Как ведет себя приложение, написанное для Андроид, со множеством таймеров? Не подтормаживает ли? Корректно ли считают время таймеры? Делаю мобильное приложение что-то вроде Фермы или Запорожья, и там многое построено на отсчетах промежутков времени.
-
Всем утречка! Интересует вопрос кастмизации listbox в плане дизайна. Хотелось бы что бы плашки имели какой то другой цвет, рамку с обводкой и все на андроиде: в какую сторону рыть? Пилить стиль самому? Хотелось бы, что бы элементы в листбоксе были темно подсвечены и имели рамочку.. Стили ставил, а вот как поправить что-то в стиле пока не понял.
-
Интересует вопрос и ноу-хау. Если есть код на Питоне, который нужно выполнять в рамках Андроид и айОС приложений - как это лучше всего делать и как это будет выглядеть? Читал, что есть Python4Delphi и это речь про DLL. Хотелось бы понять, как это будет выглядеть на iOS и Android - это дополнительный файл надо с собой такскать как в Windows или он будет внутри APK/APP ?
-
TPopup и реакция вместе с нажатием vkHardwareBack [ANDROID]
notricky опубликовал вопрос в Компоненты
Не нашел тега TPopup. Напишу тут. Ситуация в следующем. Я использую TPopup + TCalloutPanel для хинтов (подсказок). С анимацией FadeIn FadeOut. Все вроде просто. На основной форме есть стандартная проверка FormKeyDown if Key in [vkHardwareBack] then begin TPlatformServices.Current.SupportsPlatformService(IFMXVirtualKeyboardService, IInterface(FService)); if (FService <> nil) and (TVirtualKeyboardState.Visible in FService.VirtualKeyBoardState) then begin DebugLog('KeyboardOnBackButton'); end else begin Key := 0; if ItemLayout.Visible then begin DebugLog('ItemLayoutBackButton'); btCancelClick(btCancel); end else begin DebugLog('MainLayoutBackButton'); MessageDlg('Are you sure to exit now?', TMsgDlgType.mtConfirmation, [TMsgDlgBtn.mbOK, TMsgDlgBtn.mbCancel], -1, procedure (const AResult: TModalResult) begin if AResult = mrOk then begin DebugLog('CloseOnBackButton'); Close; end; end); end; end; end В общем ничего сверхестественного. Затем, когда появляется хинт: procedure TFParent.ShowHint(AControl: TControl; AText: string; ATitle: string=''; Duration: single = 3; ImageIndex: integer = -1); begin DebugLog('ShowHint'); lbHint.Text := AText; puHint.PlacementTarget := AControl; faHintFadeOut.Delay := Duration; puHint.IsOpen := true; ivHint.Visible := ImageIndex <> -1; lbHintTitle.Text := ATitle; lbHintTitle.Visible := ATitle <> ''; end; все тоже хорошо. Однако, когда я нажимаю кнопку назад - сначала пропадает хинт. А если я нажимаю снова кнопку назад, то вообще говоря я жду два варианта: ItemLayout переходит в MainLayout Программа запрашивает выход MessageDlg Но на деле приложение просто закрывается. При чем без ошибок. Что с этим можно сделать? -
Проблема давняя, хочется наконец разобраться с ней. Вот создал тестовый пример, в котором приложение TestPro и локальный Android-сервис к нему TestService2. Запускаю программу, нажимаю кнопку Start Service, сервис стартует (увидеть можно в Настройки -> Приложения -> Работающие). Не закрывая программу, перехожу к другим программам и работаю в них. Лучше всего перейти в какой-нибудь браузер и полазить по вкладкам (это довольно ресурсоемкое приложение). После нескольких минут через диспетчер задач я возвращаюсь в свое приложение и оно начинает загружаться с нуля. То есть система давно прибила программу и она начинает загрузку заново. Так вот программа долго висит на заставке, а потом выходит сообщение что приложение не отвечает! Нажимаем OK. После повторного перезапуска программы происходит тоже самое и лишь на третий раз программа запускается. Как решить эту проблему? Я пробовал убивать сервис var LIntent: JIntent; LIntent := TJIntent.Create; LIntent.setClassName(TAndroidHelper.Context.getPackageName(), TAndroidHelper.StringToJString('com.embarcadero.services.TestService2')); TAndroidHelper.Activity.stopService(LIntent); до строчки Application.Initialize - не помогает. TestService2.zip
-
Всем привет. Недавно столкнулся с проблемой: при повороте компонента "Edit" на 180 градусов (RotationAngle=180) текст становится невидимым. При чем такое происходит только при компиляции под андроид, под виндоус все работает. Если кто сталкивался с таким - подскажите, как исправить. Буду очень благодарен. PS: Студия 10.1 Берлин, гаджет - Sony Xperia ZL, android 5.1.1 test.rar
- 1 ответ
-
- android
- невидимый текст
-
(и ещё 1 )
C тегом:
-
Приложение использует Android - сервис, NetHTTPClient, потоки, получение координат с помощью LocationSensor. Если надолго оставляю работать программу (например на ночь), то в дебагере вижу ошибку Aborted(6). По нажатию Break в CallStack вижу следующее: Как дальше жить?
-
Интерфейс приложения "заморожен" после запуска до смены ориентации экрана
MrMG опубликовал вопрос в Прочие вопросы
Пишу на RAD Studio 10 Seattle, тестирую на Android 6.0.1, девайс для теста ASUS ze500kl Вопрос: Простейшее приложение - скачивает некий прайс лист и вводит содержимое в ListView, который лежит на главной форме. После запуска, приложение не реагирует ни на одно нажатие, куда бы пользователь ни нажимал. Лечится сменой ориентации экрана. Поворачиваешь экран, чтобы сменилась ориентация на альбомную, интерфейс начинает реагировать на все нажатия, возвращаешься к портретной ориентации, все продолжает работать корректно. Подскажите, может кто сталкивался, куда рыть? -
Что происходит на уровне системы, когда мы нажимаем хардварную кнопку «приложения», и в окне «последние приложения» удаляем приложение? На пользовательском уровне приложение удаляется из списка, если у приложения был запущен сервис, тот теряет процесс приложения и перезапускается. Необходимо повторить это действие пользователя (удаление программы из списка последних приложений) программно из самого приложения, со всеми сопутствующими процедурами системы. Если нет, тогда удаление из списка другим приложением. Сокрытие приложение через манифест не подходит. Кто может помочь в этом вопросе, помогите пожалуйста.
-
Всем привет! Добавляю в listViewItem дополнительный TListItemImage,а он ни в какую не отображается. Точнее картинка появляется на долю секунды и тут же пропадает. Картинки подгружаю с нета, для этого использую хелпер от ZuBy. Подскажите, в чём я накосячил. Файл проекта для Seattle приложил. TwoImages.zip
- 4 ответа
-
- TListItemImage
- ListView
-
(и ещё 2 )
C тегом:
-
Как получить доступ к отфильтрованным элементам ListView. Ситуация такая - ListView частично сформирован и показан пользователю, он может начать поиск через SearchBox, но потоки должны продолжать заполнение некоторых данных, не критичных для работы. Но дело в том, что получить доступ по индексу, к отфильтрованному итему нельзя, а нужно. Что делать? Может есть другой путь получить нужный ListViewItem?
-
Как узнать количество свободного места на "диске"? К примеру получаю путь System.IOUtils.TPath.GetCachePath, и перед тем как туда писать, хочу узнать есть ли и сколько свободного места. С наскока не нашел ответ. Заранее благодарю!
-
[Статья][AdMob] Добавляем рекламный блок в приложение
Andrey Efimov опубликовал тема в Статьи и заметки
Ссылка: http://delphifmandroid.blogspot.ru/2016/07/admob.html Автор: Андрей Ефимов Описание: Подробная инструкция по добавлению рекламного блока в приложение, разработанное в RAD Studio.