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

Brovin Yaroslav

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

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

  • Посещение

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

    390

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

  1. Я в новой версии исправлял эту ошибку, по которой диалоги выглядили старыми. Сейчас у вас они у вас выглядят как новые?
  2. Эти диалоги же нативные, и выглядят так как принято по умолчанию в системе. По идеи они должны выглядить у вас в таком стиле:
  3. Нет, версия должна быть 230. Вы локально можете ее поменять в настройках пакета. Я в новом обновлении выложу уже исправленный пакет.
  4. Ок, исправлю. Пока цвета работают только в случае, если указана картинка.
  5. В вашей новой версии SameValue так же нужно использовать для сравнения с 0 или 1. По факту - все сравнения вещественных чисел только с SameValue
  6. Стоит. Так как FireMonkey использует вещественную координатную сетку, и поэтому особенно на устройствах с нестандартным скейлом около 1,33 вещественная сетка позволит избежать "прыганья" контрола при изменении его позиции
  7. В новую версию FGX 0.7.0.69 добавил в компонент свойство TfgProgressDialog.Max, позволяющее изменить максимально допустимое значение прогресса.
  8. [RX] [FGX] Описание версии 0.7.0.69
  9. В новую версию FGX 0.7.0.69 добавил новый класс TfgToast. Он работает только под Android. В следующих версиях добавлю поддержку остальных платформ и опцию установки размера самого сообщения.
  10. В новую версию FGX 0.7.0.69 добавил для компонентов TfgActivityDialog и TfgProgressDialog свойство Cancellable. Если оно True, то диалог можно закрыть путем нажатия на экран вне диалога (Android), на экран (iOS) или кнопкой Back (Android). Если оно False, то диалог можно закрыть только программным путем. Так же я обновил пример в котором работа с этим диалогом идет асинхронно. Или другими словами, вы можете продолжать работать и обрабатывать кнопки, в то время пока отображается диалог.
  11. Ссылка на скачивание (Только для RAD Studio RX): fgx_0.7.0.69.zip Инструкция по установке: "Инструкция по установке набора компонентов FGX" Описание Эта версия включает в себя следующий набор компонентов: Дизайнер итемов (NEW) - дизайнер итемов. TfgToast (NEW) - класс отображения быстрых сообщений TfgFlipView (UPDATED) - слайдер изображений. Поддерживает несколько способов переключения фотографий при помощи эффектов и сдвигов. При первом использовании ОБЯЗАТЕЛЬНО прочитать инструкцию "TfgFlipView - Инструкция загрузки стиля" TfgPositionAnimation - анимация свойств типа TPosition TfgPosition3DAnimation - анимация свойств типа TPosition3D TfgBitmapLinkAnimation - анимация свойств типа TBitmapLink TfgProgressDialog (UPDATED)- Компонент для отображения диалогового окна в момент выполнения длительной фоновой операции, когда время выполнения фоновой операции можно оценить. TfgActivityDialog (UPDATED)- компонент для отображения диалогового окна в момент выполнения длительной фоновой операции, когда время выполнения операции не возможно адекватно оценить. TfgActionSheet - Аналог контекстного меню для мобильных платформ. TfgColorsPanel (UPDATED)- Палитра цветов с возможностью выбора цвета. TfgGradientEdit - Компонент выбора градиента. TfgLinkedLabel - Метка поддерживающая открытие Web ссылки в браузере по умолчанию. TfgApplicationEvents - компонент с возможностью легко задать обработчики на основные события приложения: Отслеживание смены состояния приложения, простой, обновление и выполнение действий Actions, Изменение ориентации устройства и тд. TfgVirtualKeyboard - компонент облегчающий работу с виртуальной клавиатурой. Позволяет задать пользовательские кнопки над виртуальной клавиатурой под iOS, а так же отлавливать события по отображению и скрытию клавиатуры. Зарегистрированы все стилевые объекты на вкладке "FGX: Style objects" Список изменений TfgActionSheet: Исправлена ошибка не позволяющая использовать действия TTakePhotoFromCameraAction и TTakePhotoFromLibraryAction под iOS. Исправлена ошибка приводящая к AV, если экшен не имел обработчика OnExecute (Android, iOS) Исправлен внешний вид под iOS. Раньше, если TfgActionSheet не содержал заголовка, сверху система все равно оставляла под него пустое место. Теперь если заголовка нет, то место не выделяется. Обновлен пример ActionSheetDemo TfgProgressDialog, TfgActivityDialog: Добавлено свойство Cancellable, позволяющее сделать диалог отменяемым по нажатию на экран или кнопку Back. Добавлено событие OnCancel, вызываемое, если пользователь отменил диалог. Обновлен пример. Теперь все операции выполняются в отдельном потоке, асинхронно. Добавлен метод IsShown, позволяющий определить, показан диалог или нет Добавлено свойство TfgOrigressDialog.Max, позволяющее указать максимальное значение прогресса. Улучшена генерация имени действия. Если прикрепляется системный экшен TSysCommonAction, то имя берется из CustomText TfgFlipView: Добавлено пролистывание при помощи жестов. Добавлена опция ShowNavigationButtons, позволяющая скрыть кнопки смены слайдов Добавлено событие OnImageClick, позволяющее отследить нажатие пользователем на слайд Обновлен пример для корректной работы на всех платформах. Исправлена ошибка слайдшоу, приводящая к невозможностью контролировать и менять параметры слайдшоу. Изменен курсор на руку TfgColorsPanel, TfgGradientEdit: Добавлены пропущенное свойство Size в секции published.
  12. Описание: Назначение: Быстрые уведомления, появляющиеся в нижней части экрана, предназначенные для отображения короткой текстовой информации и опционно изображения Поддерживаемые платформы: Android, iOS Демо проект: Samples\ToastsDemo\ToastsDemo.dproj Доступен с версии: RX (R100) Возможности: Несколько быстрых способов отображения уведомления: TfgToast.Show(Message) - только текст TfgToast.Show(Message, Icon) - текст и картинка TfgToast.Show(Message, Duration) текст + настройка длительности отображения TfgToast.Show(Message, Duration, Icon) - текст + картинка + длительность отображения Доступно редактирование цвета заднего фона (TfgToast.BackgroundColor) Доступно редактирование цвета сообщения (TfgToast.MessageColor). Возможность добавить к сообщению иконку (TfgToast.Icon) Доступно редактирование длительности отображения уведомления (TfgToast.Duration) Возможность менять глобальные параметры отображения всех тостов в рамках приложения (TfgToast.DefaultBackgroundColor, TfgToast.DefaultMessageColor и TfgToast.DefaultPadding) Примеры вызова: // Быстрое отображение, только текст TfgToast.Show('Message'); // Быстрое отображение, текст + картинка TfgToast.Show('Message', Bitmap); // Настраиваемое отображение var Toast: TfgToast; begin Toast := TfgToast.Create(EditToastMessage.Text, TfgToastDuration(ComboBoxDurationType.ItemIndex)); try if SwitchShowIcon.IsChecked then Toast.Icon.Assign(Image1.Bitmap); Toast.MessageColor := ColorComboBoxMessage.Color; Toast.BackgroundColor := ColorComboBoxBackground.Color; Toast.Show; finally Toast.Free; end; end; Скриншоты:
  13. Я так скажу, пока ничего не ясно, что да как. И даже в этой статье кроме упоминания о продажах ничего нет конкретного. Я имею в виду про развитие продуктов.
  14. Какая у вас версия среды? По идеи ничего больше не нужно: Да, это работает только для Windows, для остальных платформ посмотрите: Средства логирования в FireMonkey
  15. Добрый день, Юрий, Красота. Хороший компонент. Возможно вам пригодятся пара замечаний по портированию с VCL на FMX, которые помогу вам сделать ваш компонент еще лучше. Когда вы выполняете отрисовку в перекрытом методе TControl.Paint, не надо вызывать BeginScene и EndScene. Так как этими методами руководит сцена, обычно это форма. procedure TSeparator.Draw(px1, py1, px2, py2: Single; pColor: TAlphaColor; Opac: Single); var MyRect: TRectF; begin MyRect := TRectF.Create(px1, py1, px2, py2); with Canvas do begin [b] BeginScene; // <!--- Не нужно[/b] Fill.Kind := TBrushKind.Solid; Fill.Color := pColor; FillRect(MyRect, 0, 0, AllCorners, Opac); [b]EndScene; [/b][b]<!--- Не нужно[/b] end; Canvas end; Дополнительно: 1. Инициализацию точек для полигона можно сделать сразу на прямую. Было: // Установить точки, определяющие многоугольник p1 := TPointF.Create(px1, py1); p2 := TPointF.Create(px2, py2); p3 := TPointF.Create(px3, py3); p4 := TPointF.Create(px4, py4); p5 := TPointF.Create(px5, py5); p6 := TPointF.Create(px6, py6); // Создать полигон SetLength(MyPolygon, 6); MyPolygon[0] := p1; MyPolygon[1] := p2; MyPolygon[2] := p3; MyPolygon[3] := p4; MyPolygon[4] := p5; MyPolygon[5] := p6; Стало: MyPolygon := [TPointF.Create(px1, py1), TPointF.Create(px2, py2), TPointF.Create(px3, py3), TPointF.Create(px4, py4), TPointF.Create(px5, py5), TPointF.Create(px6, py6)]; При этом для динамических массивов перед присваивание не нужно вызывать функцию SetLength. Экономия места и 6 переменных. 2. Сравнение вещественных чисел должно осуществляться при помощи функции System.Math.SameValue. Это касается всех мест в этом юните. В противном случае у вас могут быть фантомные ложные срабатывания условий, которые найти будет сложно. Было: procedure TSevSeg.SetCellSpace(const Value: Single); begin if Value = CellSpace then exit; FCellSpace := Value; end; Стало: procedure TSevSeg.SetCellSpace(const Value: Single); begin if SameValue(Value, CellSpace) then exit; FCellSpace := Value; end;
  16. А вот и ответ: Programmatically obtain the phone number of the Android phone
  17. Я бы просто взял бы буфер с двойной шириной. При появлении новой точки просто добавлял ее, а не перерисовывал весь буфер. Затем при выводе просто сдвигал бы битмап. При таком подходе точно будет работать на много быстрее.
  18. Андроид сам вроде знает номер телефона. И если я правильно помню, то в Contact API у андроида есть возможность получить контакт самого телефона.
  19. Еще в FMX достаточно использовать Log.d. При этом сообщения будут выводиться в окно IDE Messages.
  20. We recently announced our acquisition with IDERA and this week IDERA CEO, Randy Jacops, sent a letter to Embarcadero’s customers and partners discussing the merger and what that means for the future of Embarcadero. Randy explains more…. Customer and Partner Welcome from IDERA Dear Sir/Madam, I am Randy Jacops, the CEO of IDERA, Inc. You likely saw the press announcement of IDERA’s recent acquisition of Embarcadero Technologies. Here is a link to the announcement if you have not seen it. We welcome you to the IDERA family and look forward to continuing Embarcadero’s history of market leading products for data professionals and developers. I’m writing this letter to introduce IDERA and explain why we are excited to own Embarcadero. IDERA serves over 10,000 customers around the world with performance monitoring solutions for databases, applications and technology infrastructure. We believe database professionals have an outsize impact on overall technology performance and describe our focus as database-centric. Our products enable rapid identification and remediation of performance problems across the technology stack as well as providing unique security and compliance capability. I became CEO in 2013 and during my tenure have focused the company on long-term customer relationships built on innovation, quality, and ease of use. I strongly believe a successful software company starts with a focus on driving customer success via: High quality software – complete testing with significant automated code coverage Ease of use – simplified user experience, particularly the install/upgrade process Application speed – minimal wait time, robust scalability, and real-time analytics A software company that delivers these metrics will have generally happy customers. Delivering prioritized innovation and features on a reliable schedule advances the relationship from generally happy to customer success. IDERA prioritizes investment to reflect these goals and we will apply the same philosophy to Embarcadero’s products. As you know, Embarcadero has two unique product families: 1) heterogeneous database modeling, administration, and performance and 2) application development solutions for multiple platforms. Over the years, Embarcadero also built a roster of over 10,000 customers and millions of users, serving nearly the entire Global 2000. Embarcadero operates globally with offices and partners in nearly every major country. Embarcadero’s database modeling, administration, and performance tools complement IDERA’s products with minimal overlap in functionality and business purpose. By combining the two businesses, we will offer data professionals a comprehensive solution to manage, deploy, and protect data across the company. We will seek customer feedback on integration between the solutions to ensure we adhere to our core product values of simplicity of use, quality, and scalability. For Embarcadero’s development tools, we acknowledge this is a new opportunity for IDERA. I have seen some chatter on our community forums and received direct questions from customers on IDERA’s intentions for the product line. I wish to emphasize the tremendous value we perceive in development tools. As applications proliferate across multiple channels and platforms, the need for tools to build the next generation of applications will soar. Concepts such as the Internet of Things or proximity awareness in applications did not exist several years ago. Today, everybody recognizes the opportunity in building applications for equipment that simplifies and advances society. We believe the winners in the application development market will focus on the developer and differentiate with speed to market, ease of use, and pace of change. All of these things perfectly align with IDERA’s view of product and customer success. To that end, we formed a new leadership team that will focus exclusively on Embarcadero’s development tools and growing the business via innovations and opportunistic M&A. Atanas Popov, a longtime colleague of mine, has joined Embarcadero to lead the team. Atanas will focus his attention on growing the business and investing to attract more customers to our solutions. We believe there is significant opportunity in Embarcadero’s development tools and we look forward to working with you to prioritize our investments. Finally, Embarcadero invested for years to build a robust and reliable reseller/partner network. Many companies aspire to building such a network but the time and effort required eventually discourages most. However, if a company perseveres and delivers a healthy reseller and partner business, the impact and potential is significant. Embarcadero has dozens of active and significant global partners. Maintaining a healthy reseller/partner network requires more and better product and a steady stream of potential customers interested in buying. We expect to introduce IDERA’s broader product family to Embarcadero’s partners and also plan to leverage IDERA’s talented marketing team to refine messaging and advance dialogue with prospects. We believe some modest changes and investment will expand the universe of opportunities for our partners who serve a global customer base. From an ongoing communication standpoint, we believe in publishing our product roadmaps to active customers and maintaining dialogue with customers interested in contributing. We believe user communities deliver significant customer value and will continue investing appropriately. We also believe that change facilitates innovation and increases value for our customers. We will remain committed to these principles and look forward to working with you to improve every day and help you capture expected value. If you have questions, please feel free to contact me directly (randy.jacops@idera.com). With over 20,000 customers, it’s not practical to maintain a direct dialogue with every customer, but we will respond to questions. Most importantly, we will communicate future product roadmap reviews, webinars, and related content you will find interesting. I encourage you to participate in all these sessions to ensure a mutually valuable relationship. Thank you for your business and I look forward to the future. Regards, Randy Jacops CEO, IDERA, Inc. Просмотр полной статьи
  21. Это значение не меняется в среде. Поэтому если вам требуется поставить другие значения, значит нужно изменить шаблон манифеста.
  22. Узнал, мероприятие перенесли с 24 ноября на 26 ноября. Будьте внимательны.
×
×
  • Создать...