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

Brovin Yaroslav

Администраторы
  • Постов

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

  • Посещение

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

    390

Весь контент Brovin Yaroslav

  1. Проверить можно, установив программу OpenGL Extensions Viewer (Бесплатная) и посмотреть. Обратить внимание на наличие опции: "GL_EXT_multisampled_render_to_texture"
  2. Дополнение к теме: Как включить антиалиасинг на Андроиде? Как узнать, что устройство на базе Андроид аппаратно поддерживается антиалиасинг?
  3. Ответ дан в теме Как узнать, что поддерживается антиалиасинг на устройстве на базе Андроид?
  4. По умолчанию антиалиасинг отключен на Андроиде. За управление этим эффектом отвечает свойство TForm.Quality. Оно имеет три режима: HighQuality - Качество отображения в приоритет. Поддержка антиалиасинга HighPerformance - Производительность в приоритете. Отсутствие антиалиасинга. SystemDefault - По умолчанию. Для андроида равен HighPerformance. В вашем случае для формы нужно установить Quality = HighQuality Важно знать Антиалиасинг очень дорогостоящая операция, по этому по умолчанию она отключена на мобильных платформах. Так же антиалиасинг должен поддерживаться самим устройством (Поддержка Мультисэплинга). Если устройство аппаратно не поддерживает мультисэмплинг, то антиалиасинга не будет.
  5. На будущее, "Одна тема - один вопрос". Это облегчает поиск решения своей задачи, когда заголовок содержит один вопрос и ответы на него. А не одну тему внутри которой, сидит несколько вопросов. Toast уведомления Дополнительная информация о том, что такое Toast можно прочитать на официальном сайте Андроида: Toasts Диалоговое окно ввода Диалоговое окно с эдитом во все время в Delphi вызывалось одной из двух процедур. Для FireMonkey они находятся FMX.Dialogs, в VCL - VCL.Dialogs: function InputBox(const ACaption, APrompt, ADefault: string): string; function InputQuery(const ACaption: string; const APrompts: array of string; var AValues: array of string; CloseQueryFunc: TInputCloseQueryFunc = nil): Boolean; function InputQuery(const ACaption: string; const APrompts: array of string; var AValues: array of string; CloseQueryEvent: TInputCloseQueryEvent; Context: TObject = nil): Boolean; function InputQuery(const ACaption, APrompt: string; var Value: string): Boolean; InputQuery - отображает модальное диалоговое окно с поле ввода для ввода текстового значения InputBox - Отображает модальное диалоговое окно с несколькими полями ввода для множественного ввода значений.
  6. Так же обратите внимание на страницу "What's New in Delphi and C++Builder XE6", на которой полностью указаны все изменения от XE5 до XE6.
  7. WebBrowser использует под андроидом связку нативного браузера WebView и WebClient для получения уведомлений о состоянии загрузки страницы. Поэтому в FMX мы получаем событие окончания загрузки страницы через: TWebBrowser.OnDidFinishLoad, который в свою очередь получается из WebViewClient.onPageFinished. Если это событие не дает своего эффекта, то решения нету из-за отсутствия поддержки со стороны Google. Согласно официальной документации гугла, это событие вызывается, когда полностью загружен главный фрейм страницы, исключая не загруженные изображения. Поэтому это событие не поможет. Согласно этой же документации нету события, который бы позволил определить момент, когда загружены и все внутренних встроенные страницы. Увы.
  8. На андроиде простого пути нет. Поскольку нативный WebView не имеет удобных средств для получения исходного кода страниц. Все варианты в интернете крутятся вокруг: Использования JavaScript для получения исходного кода страницы. Но, если мне память не изменяет, получить обратно результат работы из JavaScript тоже задача не тривиальная. Из-за "удобной" организации работы с WebView Использования HTTP запроса через сокеты на получения кода страницы. Этот вариант самый простой.
  9. Вообще неправильно пытаться менять позицию итемов в TListBox, поскольку сам контрол TListBox отвечает за выравнивание и расстановку своих итемов. Вы же пытаетесь пойти против работы TListBox и по своему выравнивать итемы. В этом случае вам нужно создать наследника от TListBox и переопределить алгоритм выравнивания элементов.
  10. Вы прочитали все сообщения выше, в которых описывается возможное решение вашей проблемы?
  11. Нарушенные правила описаны в заголовке темы. Добавил дополнительно I-8, I-9 согласно которым найденные ошибки, нужно публиковать в специальном отведенном месте http://qc.embarcadero.com
  12. Обратите внимание на правила публикации сообщений на этом форуме, а именно на пункты III-1,2, II-1,2,3 согласно которым нужно опубликовать иллюстрации, текущего состояния, описанной вами проблемы, и желаемой. А так же на Правила публикации отклонений от ожидаемого пункт 9. Так же ваше сообщение начинается якобы с "ошибки", а заканчиваете вы совершенно другим вопросом, касающимся возможности редактировать стиль. Прошу вас ознакомиться с правилами и соблюдать их для однозначного понимания всеми участниками форума вашей задачи и однозначного и полезного ответа на него.
  13. А чем не подходит аналог того же самого свойства? TImage.WrapMode = wmStretch;
  14. Такое поведение действительно было в XE5. В XE6 его исправили.
  15. Добрый день, Компоненты с вкладки "Vista Dialog" TFileOpenDialog, TFileSaveDialog не подходят?
  16. Смотрите сообщение выше. Это касается только стандартных способов скалирования. Либо просто меняйте размер видео контейнера TMediaControl. Видео встраивается под его размеры.
  17. На текущий момент (RAD Studio XE6) либо просто меняйте размер видео контейнера TMediaControl. Видео встраивается под его размеры. Если нужно менять способы обрезания видео, то такой поддержки нету. Но если очень нужно, то читайте рекомендации ниже. iOS Можно в модуль FMX.Media.iOS добавить задание способа кадрирования для FPlayerLayer: AVPlayerLayer. FPlayerLayer.setVideoGravity(GravityType); Где GravityType одно из следующих значений: AVLayerVideoGravityResize - Specifies that the video should be stretched to fill the layer’s bounds. AVLayerVideoGravityResizeAspect - Specifies that the player should preserve the video’s aspect ratio and fit the video within the layer’s bounds. AVLayerVideoGravityResizeAspectFill - Specifies that the player should preserve the video’s aspect ratio and fill the layer’s bounds. Андроид В FMX.Media.Android добавить задание способа скалирования для FPlayer: JMediaPlayer FPlayer.setVideoScalingMode(ScallingMode); Где ScallingMode принимает одно из следующих значений: VIDEO_SCALING_MODE_SCALE_TO_FIT - Specifies a video scaling mode. The content is stretched to the surface rendering area. When the surface has the same aspect ratio as the content, the aspect ratio of the content is maintained; otherwise, the aspect ratio of the content is not maintained when video is being rendered. VIDEO_SCALING_MODE_SCALE_TO_FIT_WITH_CROPPING - Specifies a video scaling mode. The content is scaled, maintaining its aspect ratio. The whole surface area is always used. When the aspect ratio of the content is the same as the surface, no content is cropped; otherwise, content is cropped to fit the surface. Windows В FMX.Media.Win добавить задание способа скалирования видео для FVMRWindowlessControl: IVMRWindowlessControl9; FVMRWindowlessControl.SetAspectRatioMode(Mode); Где Mode может принимать следующие значения: VMR9ARMode_None - Indicates that the VMR is not attempting to maintain the aspect ratio of the source video. VMR9ARMode_LetterBox - Indicates that the VMR will maintain the aspect ratio of the source video by letterboxing within the output rectangle.
  18. Собственно ответ был дан уже давно тут: Как правильно удалять контролы в RunTime? Единственное новое дополнение - это то, что метод Free под мобильными платформами дополнительно очищает указатель на объект. То есть: var A: TObject; begin A := TObject.Create; A.Free; // В этом месте A = nil на мобильных платформах. // На настольных платформах: A указывает на мусор end;
  19. Добрый день, Да, действительно TTakePhotoFromCameraAction используем стандартный нативный интерфейс получении фотографий и съемки видео. Но в нем нет поддержки видео по той причине, что йос не дает прямого доступа к самому видео файлу и скрывает его за публичной оболочкой. Это значит, что записанное таким способом видео, можно просматривать и воспроизводить в штатном проигрывателе мобильного устройства, но при этом вам не получить прямой доступ к самому содержимого. Поэтому остается вариант использовать для записи видео компонент FireMonkey TCameraComponent. Этот компонент не позволяет в прямую сохранить видео, но он выдает поток кадров, с которыми вы можете работать на уровне TBitmap и записать их в том числе в видео файл. На счет андроида, там ситуация лучше. И в принципе можно использовать Апи Андроида для получения записанного видео с камеры.
  20. Добавлена новая версия расширения компонентов FireMonkey. Новый пакет поддерживается только для XE6. Список возможностей: Progress Dialog - Добавлены события OnShow, OnHide. Progress Dialog - Исправлены утечки памяти на Андроид и IOS TfgProgressDialog - Добавлен метод для немедленного сброса прогресса без анимации ResetProgress. TfgActionSheet - Добавлена поддержка действий TAction. Так же теперь можно указать только по одной кнопке деструктивного и отменного типа. TfgColorsPanel - Добавлен новый контрол для выбора цветов из готовых пресетов. Поддерживает следующие наборы цветов: WebSafe, X11. Позволяет указывать свои наборы цветов. TfgGradientEdit - Добавлен новый контрол для задания градиента. TfgLinkedLabel - Добавлен новый контрол - метка со ссылкой. Открывает указанную ссылку в стандартном браузере. Поддерживает все платформы. Добавлены и улучшены примеры каждых контролов. Добавлен набор хелперов И другие улучшения на уровне кода. TfgActivityDialog Работа под iOS: Работа под Андроид (Выше, чем GingerBread 2.3): Работа под Андроид (GingerBread 2.3): TfgProgressDialog Работа под iOS: Работа под Андроид (Выше, чем GingerBread 2.3): Работа под Андроид (GingerBread 2.3): TfgActionSheet TfgColorsPanel TfgLinkedLabel
  21. Теперь в RAD Studio XE6 для iOS и Андроид появилась поддержка Tint эффекта, который позволяет прямо в дизайнере менять цвет фона, обводки и заливки иконок кнопки. Этот эффект позволяет легко менять оттенок фона и контура кнопки. Примеры для Андроид и iOS изображены ниже. Смена фона кнопки на Android: Быстрая смена заливки кнопок с иконками на iOS: Быстрая смена контура кнопки, если он поддерживается стилем: Обратите внимание, что поддержка данного эффекта зависит от стиля. Если стиль поддерживает его, то в дизайнере появятся свойства редактирования цвета. Если стиль не поддерживает, то свойства Tint будут скрыты.
  22. В RAD Studio XE6 появилась поддержка передачи данных по беспроводной сети Wi-FI. Поддержка сети Bluethooth запланирована на будущие версии. Компоненты взаимодействия приложений называются: "Application Tethering Components". Они позволяют легко осуществить взаимодействие ваших приложений друг с другом, написанных для разных платформ. Подробнее о новых компонентах тут: Using App Tethering
  23. В RAD Studio XE6 появился новый компонент TBannerAd, который позволяет встраивать контекстную рекламу в ваше приложение. Компонент поддерживает все мобильные платформы (iOS, Android). Компонент добавлен в раздел "Additional" панели палитры инструментов.
×
×
  • Создать...