Jump to content

dervish00

Active subscription
  • Posts

    246
  • Joined

  • Last visited

  • Days Won

    2

Posts posted by dervish00

  1. Погонял переделанный TfgCollectionView. Выявил пару нюансов:

    1. В ручном режиме выделения по факту не работает режим SingleSelect - выделяются все плитки, по которым тапнул, не отменяя выделения у предыдущего выделения.

    2. У меня одна форма/фрейм с TfgCollectionView это выбор папки файловой системы, при тапе на папку - все Items меняются на список подпапок и при ручном выделении возникает ошибка не попадания в индекс. Словами трудно объяснить  - если попробовать вложенный пример, то становится ясно. Фрейм 1 - просто список с SingleSelect, фрейм 3 - пример с папками. (Фрейм 2 можно не смотреть)

    testaniframe.zip

  2. Скрытый текст
    
    
    
    class procedure TfgAnimationHelper.HideForm(const AForm: TObject; const AOptions: TfgAnimationOptions;
      const ADuration: Integer; const AFinishCallback: TfgCallback);
    var
      LDuration: Integer;
      LForm: TfgCustomForm;
    {$IFDEF IOS}
      LAnimation: TfgAnimation;
      LNewTopForm: TfgCustomForm;
    {$ENDIF}
    begin
      TfgAssert.IsNotNil(AForm, 'AForm');
      TfgAssert.IsClass(AForm, TfgCustomForm);
    
      LForm := TfgCustomForm(AForm);
    
      if LForm <> TfgFormManager.Current.TopMost then
      begin
        LForm.Hide;
        if Assigned(AFinishCallback) then
          AFinishCallback;
        Exit;
      end;
    
      if ADuration = PlatformDuration then
        LDuration := TfgAnimationManager.ShortAnimationDuration
      else
        LDuration := ADuration;
    {$IFDEF IOS}
      LNewTopForm := TfgFormManager.Current.PreviousTopMost;
    
      LAnimation := LForm.AnimationManager.AddTranslationAnimation(TPointF.Zero, TPointF.Create(LForm.Width, 0), LDuration);
      LAnimation.Options := AOptions + [TfgAnimationOption.ReleaseAnimationOnFinish];
      LAnimation.OnFinishCallback := procedure
        begin
          LForm.Hide;
          if Assigned(AFinishCallback) then
            AFinishCallback;
        end;
      LAnimation.Start;
    
      if LNewTopForm <> nil then
      begin
        LAnimation := LNewTopForm.AnimationManager.AddTranslationAnimation(TPointF.Create(-LNewTopForm.Width / 3, 0),
          TPointF.Zero, LDuration);
        LAnimation.Options := [TfgAnimationOption.ReleaseAnimationOnFinish];
        LAnimation.Start;
      end;
    {$ELSE}
      LForm.Show;
      &Out(LForm, TfgAnimationInOutMode.LeftToRight, AOptions, LDuration,
        procedure
        begin
          LForm.Hide;
          if Assigned(AFinishCallback) then
            AFinishCallback;
        end);
    {$ENDIF}
    end;

     

    При вызове процедуры HideForm из-за вызова LForm.Show (после {$ELSE}) у меня крашится приложение с ошибкой "Component with name ... already exist", т.к. на форме есть компоненты, которые создаются в рантайме в обработчике формы OnShow. На предыдущей версии библиотеки этого не было. Сделал копию файла FGX.Animation с закомментированным вызовом LForm.Show - всё работает.

  3. Почему-то не могу создать тему в багтрекере. Пишу здесь.

    Компонент TfgVirtualListPicker.

    1. Если тапнуть по айтему сверху или снизу от активного (выделенного), то он становится активным, но свойство ItemIndex при этом не меняется.

    2. Как можно запретить редактирование выделенного айтема? Если по нему тапнуть, то он (айтем) выделяется, выскакивает клавиатура и можно спокойно изменить. Не нашел логического применения этому в компоненте, предназначенном для выбора значения и мне в приложении это не нужно - как запретить?

  4. Здравствуйте.

    Получается только если вначале выбрать любую другую дату, а вторым заходом уже можно выбирать сегодня. Сразу же, с первого раза, выбрать сегодня не даёт - поле остаётся пустым.

    testdifferent.zip

  5. На дровер бросил два меню. Одно инвизибл, второе визибл. В каждом есть айтем для перехода между ними. Т.е. при тапе на них меняются свойство визибл с тру на фолз и наоборот. Всё меняется, но дровер при смене схлопывается. Почему?

  6.  Все-таки решил отдельную тему создать (параллельно этой), но, как мне кажется и у меня проблема появилась на 1.5.0.2, потому что раньше вроде было всё нормально. Я всё опять о фокусе на контроле, в данном случае TfgEdit. Вот иллюстрация:

    898420118_.PNG.12d007ed2399010eb9c4f522c8398713.PNG

    Вот обработчик для FormMain.OnShow:

    procedure TFormMain.fgFormShow(Sender: TObject);
    begin
    //   fgEdit1.SetFocus;
       fgEdit2.SetFocus;
    end;

    fgEdit1 лежит на PageControl, fgEdit2 лежит напрямую на форме. Если делать fgEdit1.SetFocus, то на fgEdit1 фокус не ставится, если fgEdit2.SetFocus, то фокус на fgEdit2 прекрасно ставится. Мне кажется, что это проблемы одного и того же порядка у меня и у Игоря Мелентьева.

  7. Нужно ли после удаления айтема из списка, который связан с CollectionView и выполнения NotifyItemsRemoved для CollectionView еще и вызывать ReloadItems? Вопрос вызван тем, что после удаления не могу выделить какой-то другой айтем для выделения (SelectionMode = SingleSelect), т.к. выделение перескакивает ровно на одну позицию вниз. Если после NotifyItemsRemoved вызываю ReloadItems, то всё выделяется правильно. Пока не могу понять где баг - у меня или в библиотеке?

  8. fgDrawerLayout1.ToggleControl := nil;
    fgDrawerLayout1.Enabled := False;
    fgNavigationBarMain.ButtonsOptions.NavigationImageName := R.Bitmap.MAINMENU_BACK;

    В обработчике кнопки вставляю этот код. Иконка на кнопке NavigationBar меняется, а дровер, как выезжал, так и выезжает, и ToggleControl не сбрасывается - событие на тап по кнопке навигации не отрабатывает. Хотя, если в дизайнере очистить поле ToggleControl, то всё работает. Что делаю не так?

  9. Странно, но на форуме нигде не нашел описания такого простого вопроса.

    1. Как установить release версию поверх trial? Нужно ли удалять предыдущую или ставить поверх?

    2. Как обновлять версии (хоть триальные, хоть релизные)? Тоже самое: нужно ли сносить старую или просто устанавливать поверх предыдущей?

×
×
  • Create New...