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

Brovin Yaroslav

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

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

  • Посещение

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

    390

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

  1. Полная поддержка Bluethooth была добавлена в RAD Studio XE7
  2. В FMX работа с канвой принципиально отличается от работы в VCL. В VCL канва была у каждого оконного контрола своя. В FMX одна канва на все контролы в одной форме. Несколько важных фактов, которые помогут вам: Канва одна на всю форму и на все контролы формы. Из пункта 1 следует - Значит каждый контрол рисует себя на одной общей канве При передачи управления на отрисовку контролу, канве задаются настройки (матрица трансформации, кисти и тд) таким образом, чтобы отрисовка выполнялась в локальных координатах контрола. Значит если вы рисуете в другом месте, то отрисовка выполняется в глобальных координатах формы. По этому отрисовку нужно выполнять в абсолютных координатах (координатах формы) Прямую отрисовку на форме нельзя выполнять по нажатию на кнопку. Так как в FMX есть четкая последовательность фаз отрисовки. Места отведенные для рисования - это событие OnPaint. В противном случае, не гарантируется корректная отрисовка на всех платформах.
  3. Я в процессе создания версии для XE7... Постараюсь на следующей неделе доделать.
  4. В XE7 мне не удалось воспроизвести вашу ситуацию. TScrollBox прокручивается до самого низа при использовании кода: ScrollBox1.ScrollBy(0, -ScrollBox1.ContentBounds.Height);
  5. Дело тут скорее не в свойстве Scale. представьте у вас есть картинка 32 на 32 точки. Вам нужно сжать ее до размеров 20 на 20. Естественно, что способов сжатия такого изображения множество. Можно сжать способом по умолчанию (так как это принято в используемой FMX графической библиотеке), через Scale, но в таком случае изображение может потерять четкость. Это неизбежно. Но разные алгоритмы могут снизить этот эффект. Так что тут речь скорее о алгоритмических задачах сжатия с минимальными потерями качества.
  6. Совет: Самый действенный способ, по моему опыту. Это завести в QC баг и прикрепить проект, на котором это гарантированно воспроизводится. Тогда с большой долей вероятности такая ошибка будет исправлена. Остальное обсуждение ошибок в любых других местах не сделает исправление этих ошибок ближе.
  7. Добрый день. Нет в состав FMX не входят подобные фильтры по выполнению сжатия изображения разными способами.
  8. Это была ошибка в ХЕ5. В ХЕ6 ее должны были исправить. Сейчас такой проблемы быть уже не должно.
  9. В вашим проекте у вас ошибка. Посмотрите внимательно на: CornerButton1.StyleName = 'CornerButtonImageStyle'. Должен быть пуст в вашем случае CornerButton1.StyleLookupName = 'CornerButton1Style1'. Хотя в стиле ваш стиль назван: "CornerButtonImageStyle"
  10. Для iOS такая функция была добавлена еще в XE4
  11. Запустил ваш проект, моргания пи открытии формы не вижу.
  12. Описанное вами поведение корректное. Так как прозрачность родительского компонента влияет на прозрачность всех дочерних. В вашем случае достаточно задать прозрачность для кисти заливки Fill и границ Stroke, указав в цвете нужную альфа составляющую.
  13. В XE7 появилась функция задания заставки приложения для андроид устройств. Если раньше пользователям приходилось создавать свои решения этой задачи (Как создать заставку для андроид приложения?), то теперь заставку можно легко указать в настройках проекта:
  14. Полноценная поддержка SplashScreen для андроида реализована в RAD Studio XE7. Задать экран заставки можно через настройки проекта.
  15. Добрый день, ShowMessage MessageDlg и другие производные
  16. В XE6 появился специальный сервис для контролирования смены состояния приложения IFMXApplicationEventService. Он позволяет задать свой обработчик на событие смены состояния. Всего поддерживаются следующие типы состояний TApplicationEvent: FinishedLaunching - приложение запущено BecameActive - приложение стало активным, после того, как до этого было свернутым. WillBecomeInactive - приложение будет активировано EnteredBackground - приложение свернулось WillBecomeForeground - приложение будет свернуто WillTerminate - приложение будет завершено LowMemory - Нехватка памяти OpenURL - открытие приложение по ссылке. 1 Способ. Запрос сервиса IFMXApplicationEventService Соответственно, чтобы узнать о смене состояния нужно: Запросить сервис: uses FMX.Platform; var ApplicationService: IFMXApplicationEventService; begin TPlatformServices.Current.SupportsPlatformService(IFMXApplicationEventService, ApplicationService); Создать свой обработчик и задать его при помощи полученного сервиса: function TForm1.ApplicationEventChanged(AAppEvent: TApplicationEvent; AContext: TObject): Boolean; begin // Здесь получаем новое состояние приложения end; var ApplicationService: IFMXApplicationEventService; begin TPlatformServices.Current.SupportsPlatformService(IFMXApplicationEventService, ApplicationService); if ApplicationService <> nil then ApplicationService.SetApplicationEventHandler(ApplicationEventChanged); end; 2 Способ. Подписка на получение сообщения: Вместе со сменой состояния платформа FMX осуществляет широковещательную рассылку сообщения о смене состояния: TApplicationEventMessage Второй способ заключается в подписке на это сообщение: Подписываемся на получение сообщения TApplicationEventMessage: uses System.Messaging; // Подписка TMessageManager.DefaultManager.SubscribeToMessage(TApplicationEventMessage, DoApplicationEventChanged); Получаем сообщения procedure DoApplicationEventChanged(const Sender: TObject; const Message: TMessage); begin end; Не забываем отписаться от сообщений, когда это больше уже не нужно: // Отписка TMessageManager.DefaultManager.Unsubscribe(TApplicationEventMessage, DoApplicationEventChanged);
  17. Это то. Называется Immersive Mode. В XE7 еще теперь можно убирать программные кнопки внизу экрана.
  18. Я может чего не понимаю. Но первое сообщение этой темы говорит, что: И в последнем сообщение вы пишите, что у вас все получается и без этого...
  19. С учетом того, что XE7 официально анонсирована. Возможность скрытия и отображения статус бара на Андроиде была добавлена и реализована в XE7.
  20. На счет сеттера я ошибся, не обратил внимание, что это TImage. Ошибка в неправильном подходе создания собранного компонента. Вы создаете в конструкторе объект TImage и добавляете его прямо к компоненту. Если вы не сбрасываете для TImage stored, то TImage будет сериализован в ресурсы формы (fmx - файл). НО при открытии формы заново, ваш компонент создаст опять новый объект TImage и + при чтении данных из ресурсов, общий механизм десериализации объектов восстановит старый TImage и в итоге вы получите два TImage. Если вы говорите, что TImage не должен сохраняться в ресурсы. То при копировании объекта TImаge не будет копироваться, так как при копировании объекта в IDE по сути происходит копирование части ресурсов, относимые к этому объекту. В вашем случае нужно создать поля для хранения именно картинки TBitmap, открыть доступ к этому полю на запись и чтения. И в сеттере выполнять присваивание вашей картинки из поля TBitmap в TImage, который вы создаете динамически, но не сохраняете его в ресурсы (Stored = False) P.S. Кстати, такая тема частично уже обсуждалась на форуме: Как добавить в свой компонент TImage и дать возможность менять картинку? посмотрите
  21. В XE7 описанные ошибки не воспроизводятся.
  22. Точка используется в языке Delphi, в С++ это будет в данном случае "::" ScrollBar1->Align = TAlignLayout::Client P.S. По скольку начиная с ХЕ6 требуется обязательное указание пространства имен для перечислимых типов, нужно обязательно указывать namespace.
×
×
  • Создать...