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

Alex7wrt

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

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

  • Посещение

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

    31

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

  1. Alex7wrt

    ListView Item.Height

    I think, it's worth paing attention that ItemAppearence includes also Header and Footer.
  2. В некоторых приложениях под Android, в частности ES проводник, есть возможность быстрой оценки приложения, когда не выходя из него, без перехода на Google Play, можно выбрать от 1 до 5 звезд. Можно ли это организовать с помощью FMX?
  3. Подозреваю, что это связано с тем, что картинка размером 1317*66, а должна быть 1320*66 (20*66=1320). Проверил свою серию изображений в вашей программе, где размеры совпадают - воспроизвелось нормально.
  4. Снова возвращаюсь к этому вопросу. Так как программу пишу под Windows, то для реализации подходит и VCL. Хотя в FMX есть многие плюшки, к которым уже привык. В FMX пробовал через DirectShow - захватом кадра из видео и сохранением его в Bitmap для последующего отображения на другом приемнике. Но здесь проблема в низкой производительности, поскольку сохранение кадра происходит в VCL.Bitmap, конвертация которого в FMX.Bitmap требует много ресурсов (с учетом необходимости сохранить частоту кадров): var bSize: integer; pVideoHeader: TVideoInfoHeader; MediaType: TAMMediaType; Buffer: Pointer; tmp: array of byte; FMXBMP: TBitmap; datas: TBitmapData; begin Result := E_FAIL; if FSampleGrabber = NIL then EXIT; Result := FSampleGrabber.GetCurrentBuffer(bSize, NIL); if (bSize <= 0) or FAILED(Result) then EXIT; try SetLength(tmp, bSize); try FSampleGrabber.GetCurrentBuffer(bSize, @tmp[0]); fmxbmp:=tbitmap.Create(640,480); fmxbmp.Map(TMapAccess.Write,datas); copymemory(datas.Data,pointer(tmp),bSize); fmxbmp.Unmap(datas); image1.Bitmap:=fmxbmp; except Result := E_FAIL; end; finally SetLength(tmp, 0); FMXBMP.Free; end; Также пробовал в VCL с ActiveX компонентами TVLCPlugin2 и TWindowsMediaPlayer. Они, конечно, хорошо подходят для воспроизведения видео, но выводить на два приемника с их помощью также не получилось. Воспроизведение одного файла двумя экземплярами плеера мне не подходит - нужна четкая синхронизация по паузе, звуку, и т.д. Может кто-нибудь подскажет, с помощью чего это можно сделать? Если есть такой инструмент на VCL, годов переписать программу для него, так как данный момент самый критичный.
  5. Поместить TMediaPlayerControl в другую форму, и для этой формы сделать: SetBounds(Screen.Displays[1].Bounds); Это если нужно на весь экран, если нет, то Left:=Screen.Displays[1].Bounds.Left;
  6. Если задача сводится к отображению только системы линейных уравнений, то, мне кажется, через отрисовку на канве будет наиболее просто. 1. Создать с помощью TPath векторный шаблон для фигурной скобки слева (если ее вообще нужно отрисовывать). Что-то типа: стандартные размеры для концов и центра + растягиваемые прямые линии, длина которых зависит от количества уравнений и размера шрифта. 2. Отображение самих уравнений. Верхний ряд напротив верхнего конца фигурной скобки, нижний - нижнего, промежуточные - с равным интервалом между ними. Если возьметесь и сделаете, то потом будет значительно проще и у вас будет собственный инструмент, который сможете корректировать в случае чего - например, добавлять степени, дробь, корни и т.д. P.S. У меня был когда-то вопрос об отображении степеней. В итоге сделал через канву.
  7. Я так понимаю,у меня одного возникает такая проблема, и никто с таким не встречался? Может быть стоит создавать баннер средствами JNI на основе стандартного баннера Android? Тут еще такой вопрос: в Berlin есть модуль FMX.Advertising.Android. Есть ли у кого-нибудь опыт работы с этим модулем?
  8. Полностью пустой новый проект. При простом добавлении на форму TBannerAD наблюдается описанная выше проблема. Приложение открывается, экран поворачивается нормально сколько угодно раз. Но стоит свернуть приложение, повернуть экран в другую ориентацию, и снова запустить, как приложение виснет. Среда 10.1. В настройках проекта включен AdmobService. Template манифеста <?xml version="1.0" encoding="utf-8"?> <!-- BEGIN_INCLUDE(manifest) --> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="%package%" android:versionCode="%versionCode%" android:versionName="%versionName%" android:installLocation="%installLocation%"> <!-- This is the platform API where NativeActivity was introduced. --> <uses-sdk android:minSdkVersion="%minSdkVersion%" android:targetSdkVersion="%targetSdkVersion%" /> <%uses-permission%> <uses-feature android:glEsVersion="0x00020000" android:required="True"/> <application android:persistent="%persistent%" android:restoreAnyVersion="%restoreAnyVersion%" android:label="%label%" android:debuggable="%debuggable%" android:largeHeap="%largeHeap%" android:icon="%icon%" android:theme="%theme%" android:hardwareAccelerated="%hardwareAccelerated%"> <%application-meta-data%> <%services%> <!-- Our activity is a subclass of the built-in NativeActivity framework class. This will take care of integrating with our NDK code. --> <activity android:name="com.embarcadero.firemonkey.FMXNativeActivity" android:label="%activityLabel%" android:configChanges="orientation|keyboard|keyboardHidden|screenSize" android:launchMode="singleTask"> <!-- Tell NativeActivity the name of our .so --> <meta-data android:name="android.app.lib_name" android:value="%libNameValue%" /> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <%activity%> <%receivers%> </application> </manifest> <!-- END_INCLUDE(manifest) --> Не понятно, в чем причина зависаний - стоит удалить компонент tBannerAD с формы, как все становится нормальным.
  9. Да, об этом. Уже разобрался. Сделал через bCancel.OnClick. Появился еще один вопрос - клавиатура в альбомной ориентации перекрывает кнопки ОК и Отмена. Есть ли возможность поместить диалог выше? UPD: Делаю через свойство TMyInputQuery.Top. Но пока не выходит...
  10. Очень полезный компонент. Большое спасибо! Реализована ли здесь обработка нажатия клавиши "Отмена" касательно TMyInputQuery?
  11. Можно попробовать события жизненного цикла формы http://delphifmandroid.blogspot.com/2013/10/blog-post.html
  12. Может быть попробовать оптимизировать потребление RAM приложением? Тогда увеличится вероятность остаться в памяти при сворачивании. К слову на устройстве под управлением Android 6.0 c 3 ГБ памяти ничего не закрывается. Но при небольшом количестве открытых приложений (камера, мессаджеры и прочие стандартные программы), объем свободной памяти уменьшается до 1 ГБ.
  13. Присоединяюсь к вопросу. Тоже интересует, как корректно "убить" приложение во всех возможных случаях закрытия.
  14. То есть в теле процедуры TForm.OnFormClose нужно разместить процедуру KillMe из данного модуля?
  15. Раньше тоже думал, что из-за повторных запусков и занимался "убиванием" на выходе, пока несколько раз не столкнулся с зависанием приложения сразу после установки из FMX. Поэтому вообще не понятно. А у Вас всегда нормально стартуют с первого раза? И, если не секрет, как Вы организовывали kilprocess?
  16. Практически все приложения, написанные под Android, периодически отказываются запускаться. На вскидку приблизительно в 10% случаях. То есть в 90% запускаются нормально, а в 10% - просто не запускаются и все. Если остановить и перезапустить, то скорее всего запустится. Причем это наблюдается в разных приложениях, под различными версиями Android от 4.0 до 6.0. Как раньше было в XE7, так и сейчас в Berlin. Может быть, существуют какие-то общие рекомендации при создании приложений под Android? Я, например, обычно загружаю все ресурсы и произвожу инициализацию всех глобальных параметров в событии OnCreate формы, в главном потоке. Может так нельзя? Вобщем, теряюсь в догадках, что может быть не так.
  17. Добрый день. Можно ли средствами FMX осуществлять потоковую трансляцию видео с камеры на сервер - в частности на ютьюб?
  18. Не стану спорить. Возможно так и есть. Думаю, стоит добавить в обработчике OnLoad блока такой код procedure TForm1.BannerAd1DidLoad(Sender: TObject); begin BannerAd1.Show; end;
  19. Сначала тоже хотел написать это. Но автор поста запускает в тестовом режиме.
  20. Добрый день. Вроде бы все у Вас правильно. Попробуйте изменить положение блока на MostBottom или MostTop.
  21. Решил задачу с помощью таймера и функций getcursorpos() и getasynckeystate().
  22. Добрый день. Каким образом можно в FMX обработать события OnMouseDown, OonMouseUp, OnClick у заголовка формы?
  23. Да, в VLC это было просто. Спасибо, что откликнулись!
×
×
  • Создать...