Лидеры
Популярный контент
Показан контент с высокой репутацией 24.10.2015 во всех областях
-
[RX] [FGX] Описание версии 0.7.0.69
Rusland и 3 других отреагировал Brovin Yaroslav за тема
Ссылка на скачивание (Только для 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.4 балла -
Семисегментный индикатор
zairkz и 3 других отреагировал Brovin Yaroslav за тема
Добрый день, Юрий, Красота. Хороший компонент. Возможно вам пригодятся пара замечаний по портированию с 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;4 балла -
Компоненты TSevSeg - семисегментный индикатор и TSeparator - разделитель. Переписал компоненты с VCL. Может, кому пригодится. Пример использования: Для разового использования можно просто подключить к проекту как модуль. SevenSegment.zip3 балла
-
Описание TfgToast - Быстрые уведомления
Алмаз Амангельды и ещё один отреагировал Brovin Yaroslav за тема
Описание: Назначение: Быстрые уведомления, появляющиеся в нижней части экрана, предназначенные для отображения короткой текстовой информации и опционно изображения Поддерживаемые платформы: 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; Скриншоты:2 балла -
ListView Color Helper
Евгений (KeeperWorld) и ещё один отреагировал Равиль Зарипов (ZuBy) за вопрос
Привет Всем! Много тем на форуме про раскраску TListView, нашел в интернете решение и доработал его Вот что получилось LV_Helper.zip ColorListView.zip Доступно для Seattle ListView1.SetColorItemSelected(TAlphaColorRec.Orangered); //выделенный ListView1.SetColorItemFill(TAlphaColorRec.Gray); // обычный цвет Item ListView1.SetColorItemFillAlt(TAlphaColorRec.Lightgrey); // альтернативный цвет Item ListView1.SetColorBackground(TAlphaColorRec.Black); // цвет самого TListView ListView1.SetColorItemSeparator(TAlphaColorRec.Lightgray); // Линия разделения Item'ов ListView1.SetColorText(TAlphaColorRec.Red); // Обычный текст ListView1.SetColorTextSelected(TAlphaColorRec.White); // выделенный текст ListView1.SetColorTextDetail(TAlphaColorRec.Yellow); // текст доп. инфы ListView1.SetColorTextHeader(TAlphaColorRec.Green); // текст заголовка ListView1.SetColorTextHeaderShadow(TAlphaColorRec.Lightgray); // тень текста ListView1.SetColorButtonText(TAlphaColorRec.Orange); // цвет текста кнопки ListView1.SetColorButtonTextPressed(TAlphaColorRec.Orangered); // цвет нажатой кнопки добавлено в Berlin ListView1.SetColorPullRefresh(TAlphaColorRec.Orange); ListView1.SetColorPullRefreshIndicator(TAlphaColorRec.Orangered); ListView1.SetColorStretchGlow(TAlphaColorRec.Lime); ModernListView.rar2 балла -
Да, это работает. Нашел случайно. Вопрос был как раз в том, что никак с документацией google не пересекается1 балл
-
Push сообщение для одного конкретного клиента
rustam_d отреагировал Евгений Корепов за вопрос
{ "registration_ids": [ "APA91bFwDgtPtlwgvbgVt7qpxqes0UIi...", "APA91bFS3fknVDY6qifQiJ1KZDSjwZE..." ], "data": { "title": "Заголовок сообщения", "message": "Текст сообщения" } }1 балл -
FGX под RAD 10 Seattle
zairkz отреагировал Brovin Yaroslav за вопрос
[RX] [FGX] Описание версии 0.7.0.691 балл -
Спасибо Brovin Yaroslav за советы. Все исправил. Я совсем недавно стал изучать FireMonkey. SevenSegment.zip1 балл
-
Анимированные выводит диаграмму (график)
Вячеслав отреагировал Brovin Yaroslav за вопрос
Я бы просто взял бы буфер с двойной шириной. При появлении новой точки просто добавлял ее, а не перерисовывал весь буфер. Затем при выводе просто сдвигал бы битмап. При таком подходе точно будет работать на много быстрее.1 балл -
Групповые занятия
Brovin Yaroslav отреагировал Martifan за тема
Очень полезная занятия, лично я обращался к Ярославу и за несколько часов решили все проблемы, спасибо еще раз Ярослав1 балл -
Смена родительского компонента для аниматора
Евгений Корепов отреагировал xenon54 за вопрос
procedure TForm2.MoveRect(Rect: TRectangle); begin TAnimator.AnimateIntWait(Rect, 'Position.Y', 0); TAnimator.AnimateInt(Rect, 'Position.Y', 152); end; Так вас не устроит?1 балл