Brovin Yaroslav

FGX [RX] [FGX] Описание версии 0.7.1.118

1 сообщение в этой теме

Описание

Эта версия включает в себя следующий набор компонентов:

  • Дизайнер итемов - дизайнер итемов.
  • TfgToast (UPDATED) - класс отображения быстрых сообщений
  • TfgFlipView - слайдер изображений. Поддерживает несколько способов переключения фотографий при помощи эффектов и сдвигов. При первом использовании ОБЯЗАТЕЛЬНО прочитать инструкцию "TfgFlipView - Инструкция загрузки стиля"
  • TfgPositionAnimation - анимация свойств типа TPosition
  • TfgPosition3DAnimation - анимация свойств типа TPosition3D 
  • TfgBitmapLinkAnimation - анимация свойств типа TBitmapLink 
  • TfgProgressDialog (UPDATED) - Компонент для отображения диалогового окна в момент выполнения длительной фоновой операции, когда время выполнения фоновой операции можно оценить.
  • TfgActivityDialog (UPDATED) - компонент для отображения диалогового окна в момент выполнения длительной фоновой операции, когда время выполнения операции не возможно адекватно оценить.
  • TfgActionSheet (UPDATED) - Аналог контекстного меню для мобильных платформ.
  • TfgColorsPanel - Палитра цветов с возможностью выбора цвета.
  • TfgGradientEdit (UPDATED) - Компонент выбора градиента.
  • TfgLinkedLabel  - Метка поддерживающая открытие Web ссылки в браузере по умолчанию.
  • TfgApplicationEvents - компонент с возможностью легко задать обработчики на основные события приложения: Отслеживание смены состояния приложения, простой, обновление и выполнение действий Actions, Изменение ориентации устройства и тд.
  • TfgVirtualKeyboard - компонент облегчающий работу с виртуальной клавиатурой. Позволяет задать пользовательские кнопки над виртуальной клавиатурой под iOS, а так же отлавливать события по отображению и скрытию клавиатуры.
  • (UPDATED) Зарегистрированы все стилевые объекты на вкладке "FGX: Style objects"

Список изменений

  • TfgActionSheet:
    • Добавлен новый вариант темы Theme = Custom и свойство ThemeID, позволяющий для андроида указать идентификатор своей темы диалога. Теперь доступна возможность создать свой вариант диалога для андроида.
    • Изменен порядо срабатывания событий OnCancel, OnHide в реализации на iOS. Раньше срабатывали OnHide -> OnCancel, Теперь: OnCancel -> OnHide
    • Обновлен пример
    • Общие улучшения в читабельности кода
  • TfgProgressDialog, TfgActivityDialog:
    • Добавлен новый вариант темы Theme = Custom и свойство ThemeID, позволяющий для андроида указать идентификатор своей темы диалога.
    • Обновлен пример
    • Общие улучшения в читабельности кода
  • TfgGradientEdit:
    • Добавлено событие OnPointRemoved, срабатывающее, когда точка удалена из градиента.
    • Обновлен пример
  • TfgToast:
  • Регистрация стилевых объектов:
    • Теперь регистрируются только те объекты, которые не добавлены в палитру.
wamaco, yumata, Andrey Efimov и 9 другим понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

  • Похожие публикации

    • Автор: Brovin Yaroslav
      Скачать пакет можно здесь: Скачать
      1. Удалить старый пакет библиотеки FGX
      Открываем среду IDE RAD Studio XE7 с административными правами. В меню открываем менеджер пакетов: "Component -> Install Packages..."

      Среди списка компонентов находим "FMX Extension Components". Выделяем и нажимаем кнопку "Remove"

      2. Установка пакета библиотеки FGX
      Открываем в среде группу проектов. "File -> Open Project -> FGXGroup.groupproj"

      Собираем пакет fgx210 для всех требуемых платформ. Выделяем в менеджере проектов нужную платформу "Target Platforms" и в контекстном меню пакета fgx210 выбираем "Build"

      Далее повторяем сборку для всех целевых платформ.
      3. Устанавливаем Design-Time пакет
      Выбираем в группе проектов dclfgx210 пакет и в контекстном меню выбираем "Install"
      Если пакет успешно установлен, то появится сообщение со списком зарегистрированных компонентов следующего вида:

      Все! Установка окончена.
    • Автор: RubenKamp
      Добрый день господа.
      Уже несколько часов не могу разобраться с медиаплеером, не могу воспроизвести mp3 файл, прошу помощи.
      В Deployment файл добавлен.
      uses System.IOUtils;
      MediaPlayer1.FileName := TPath.Combine(TPath.GetDocumentsPath, 'Correct.mp3');
      MediaPlayer1.Play;
      Ошибка: Не поддерживаемый медиа файл.
      Делал так MediaPlayer1.FileName:=System.IOUtils.TPath.Combine(System.IOUtils.TPath.GetDocumentsPath(),'Correct.mp3'); и та же ошибка.
      А так работает: MediaPlayer1.FileName := 'D:\PRG\app\Slide #11\Sound\Correct.mp3';
      Что изменилось в Berlin-е?
    • Автор: Евгений Корепов
      Господа и товарищи, помогите тупому мне! Столкнулся с странным. Под windows все отлично работает, а под android не могу добиться загрузки картинок. Мозг уже сломал.
      Собрал тестовый проект - в ListView (DynamicAppearance) добавляем 4 ListViewItem, в ListViewUpdatingObjects все создаем и грузим картинки из инета (потоки и прочее убрал для упрощения). Картанка слева, текст (URL) справа, проще некуда. Прилагаю к сообщению архив проекта и код.
      unit Unit1; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.ListView.Types, FMX.ListView.Appearances, FMX.ListView.Adapters.Base, FMX.ListView, System.Net.HTTPClient, FMX.Objects; type TFormMain = class(TForm) ListView: TListView; procedure ListViewUpdatingObjects(const Sender: TObject; const AItem: TListViewItem; var AHandled: Boolean); procedure FormShow(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } ListViewUpdate : Boolean; procedure MyListViewUpdateObjects(const AListView: TListView; const AItem: TListViewItem); procedure InitListView(AListView : TListView); function LoadImageFromURL(AURL : String) : TBitmap; end; var FormMain: TFormMain; implementation {$R *.fmx} procedure TFormMain.FormCreate(Sender: TObject); begin ListViewUpdate:=False; end; procedure TFormMain.FormShow(Sender: TObject); begin InitListView(ListView); end; procedure TFormMain.InitListView(AListView : TListView); Var AListViewItem : TListViewItem; AImageURL : String; begin AImageURL:='http://kayfolom.ru/images/test/'; ListViewUpdate:=True; AListViewItem:=AListView.Items.Add; AListViewItem.Data['ImageURL']:=AImageURL + 'logo.png'; ListViewUpdate:=False; AListViewItem.Adapter.ResetView(AListViewItem); ListViewUpdate:=True; AListViewItem:=AListView.Items.Add; AListViewItem.Data['ImageURL']:=AImageURL + '000487806d3a2ab98aeb2c47b810fc8b.jpg'; ListViewUpdate:=False; AListViewItem.Adapter.ResetView(AListViewItem); ListViewUpdate:=True; AListViewItem:=AListView.Items.Add; AListViewItem.Data['ImageURL']:=AImageURL + '0012ef6cb42e95268a4cd1d832a2b93a.jpg'; ListViewUpdate:=False; AListViewItem.Adapter.ResetView(AListViewItem); ListViewUpdate:=True; AListViewItem:=AListView.Items.Add; AListViewItem.Data['ImageURL']:=AImageURL + '0022454ccb4f81a701cb3a3c89d52d2f.jpg'; ListViewUpdate:=False; AListViewItem.Adapter.ResetView(AListViewItem); end; procedure TFormMain.ListViewUpdatingObjects(const Sender: TObject; const AItem: TListViewItem; var AHandled: Boolean); begin if Not ListViewUpdate then begin MyListViewUpdateObjects(Sender as TListView, AItem); AHandled:=True; end; end; procedure TFormMain.MyListViewUpdateObjects(const AListView: TListView; const AItem: TListViewItem); Var AName : TListItemText; AImage : TListItemImage; AvailableWidth, ImageWidth, ImageHeight : single; function SetupTextObject(const AName, AText : String; AFontSize : Single; AFontStyles : TFontStyles; AWidth, AHeight, X , Y : Single; AAlign, AVertAlign: TListItemAlign; ATextAlign, ATextVertAlign: TTextAlign) : TListItemText; begin Result:=TListItemText(AItem.View.FindDrawable(AName)); if Result=Nil then Result:=TListItemText.Create(AItem); Result.Name:=AName; Result.Width:=AWidth; Result.WordWrap:=True; Result.Font.Size:=AFontSize; Result.Font.Style:=Result.Font.Style + AFontStyles; Result.Trimming:=TTextTrimming.None; Result.Text:=AText; Result.PlaceOffset.X:=X; Result.PlaceOffset.Y:=Y; Result.Align:=AAlign; Result.VertAlign:=AVertAlign; Result.TextAlign:=ATextAlign; Result.TextVertAlign:=ATextVertAlign; Result.Height:=AHeight; end; function SetupImageObject(const AName : String; AWidth, AHeight, X , Y : Single; AAlign, AVertAlign: TListItemAlign) : TListItemImage; Var AImageURL : String; begin Result:=TListItemImage(AItem.View.FindDrawable(AName)); if Result=Nil then begin Result:=TListItemImage.Create(AItem); AImageURL:=AItem.Data['ImageURL'].AsString; Result.Bitmap:=LoadImageFromURL(AImageURL); end; Result.Name:=AName; Result.Width:=AWidth; Result.Height:=AHeight; Result.PlaceOffset.X:=X; Result.PlaceOffset.Y:=Y; Result.Align:=AAlign; Result.VertAlign:=AVertAlign; Result.ScalingMode:=TImageScalingMode.StretchWithAspect; end; begin AvailableWidth:=AListView.Width - AListView.ItemSpaces.Left - AListView.ItemSpaces.Right; // Изображение размещаем слева ImageWidth:=AvailableWidth / 3; ImageHeight:=AvailableWidth / 3; AImage:=SetupImageObject('Image', ImageWidth, ImageHeight, 0, 0, TListItemAlign.Leading, TListItemAlign.Leading); // Текст справа AName:=SetupTextObject('Name', AItem.Data['ImageURL'].AsString, 14, [], AvailableWidth - ImageWidth, ImageHeight, ImageWidth, 0, TListItemAlign.Leading, TListItemAlign.Leading, TTextAlign.Center, TTextAlign.Center); AItem.Height:=Round(ImageHeight + AListView.ItemSpaces.Top + AListView.ItemSpaces.Bottom); end; function TFormMain.LoadImageFromURL(AURL : String) : TBitmap; Var AHTTPClient : THTTPClient; AStream : TMemoryStream; HTTPResponse : IHTTPResponse; begin Result:=Nil; AHTTPClient:=THTTPClient.Create; AStream:=TMemoryStream.Create; try HTTPResponse:=AHTTPClient.Get(AURL, AStream); finally if HTTPResponse.StatusCode=200 then Result:=TBitmap.CreateFromStream(AStream); end; end; end.  
      test092 ListView with Image.7z
    • Автор: FeLDMARShaL
      Будет ли реализованна поддержка новой версии Delphi?
      Ну и любимый вопрос для разработчика ... хотя бы примерные сроки, ну или хотя бы на како этапе сейчас развитие проекта?
    • Автор: rakhmet
      Оказался в крайне идиотской ситуации: единственный iPhone 5s был обновлён до 10.2. Даже не спрашивайте как - рассказать всё равно не смогу, один глаз уже и так дёргается 
       
      В общем, Xcode 8.0 не работает с iOS 10.2. Обновить старенький Xcode 8.0 я не могу, потому что с обновлённым Xcode 8.2, в свою очередь, не работает Delphi Berlin Update 2. При этом откатить iOS могу максимум до 10.1, но мне нужна минимум iOS 10.0 - просто чтобы хотя бы заткнуть Xcode 8.0 
       
      Что можно сделать?
    • Автор: Рагим
      Доброго времени суток. Пишу мобильное приложение на Delphi Berlin. Добавил вибрацию при нажатии на кнопку. На Андроид 4.4.2 все работает нормально, на Андроид 6 при нажатии на кнопку приложение вылетает. Проблема точно в вибрации, так как при отсутствии вибрации все работает нормально. В качестве процедуры вибрации использую следующий код:
      procedure Vibr; //Процедура вибрации var   VibratorObj: JObject;   Vibrator: JVibrator; begin   VibratorObj := SharedActivity.getSystemService(TJActivity.JavaClass.VIBRATOR_SERVICE);   Vibrator := TJVibrator.Wrap((VibratorObj as ILocalObject).GetObjectID);   if Vibrator.hasVibrator() then     Vibrator.vibrate(200); end;  
      Как по Вашему, в чем может быть причина?
    • Автор: gresaggr
      Как избежать повторных нажатий/ закликиваний на кнопку?
      Имеется следующий код:
      procedure Tfm.ButtonPrevCardClick(Sender: TObject);
      begin
        ButtonPrevCard.Enabled := false;
        Application.ProcessMessages;

       // здесь код по смене карты + пауза в 2 секунды

        ButtonPrevCard.Enabled := true;
        Application.ProcessMessages;
      end;
      Под Windows повторных нажатий/закликиваний при этом не происходит.
      А под Андроид, если пользователь быстро подряд нажал несколько раз, то сработает также несколько раз.
       
    • Автор: Dmitry Sobko
      У меня другая проблема, посмотрите скриншот http://joxi.ru/KAxejoocopD9r8, не могу запустить ни один демо проект на андроиде. Помогите пожалуйста.
       
      ---------------------
      От модератора: Сообщения вынесены в отдельную тему в соответствии с правилами. Скриншот загружен на форум, под спойлер.
    • Автор: tuliosantana
      Ошибка при установке компонента FGX
      [dcc32 Fatal Error] FGX.Asserts.pas(159): F2039 Could not create output file 'c:\program files (x86)\embarcadero\studio\17.0\lib\Win32\Debug\FGX.Asserts.dcu'
  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу