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

nassl

Пользователи
  • Постов

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

  • Посещение

Активность репутации

  1. Like
    nassl получил реакцию от Yarpda в Координата в процессе свайпа   
    Отвечу сам себе, чтобы не потерять .
    Итак, хочется ловить жесты влево, вправо и после лонгтап считывать координаты точки касания. В частности изменяется размер TImage, который скрывается по окончании свайпа запуском анимации в которой Opacity меняется от 1 до 0}.
    TPointF P, OldP;
    void __fastcall TForm1::FormGesture(TObject *Sender, const TGestureEventInfo &EventInfo,
              bool &Handled)
    {
     if (EventInfo.Flags.Contains(TInteractiveGestureFlag::gfBegin))
     {  switch (EventInfo.GestureID)  { case igiLongTap: OldP.y=EventInfo.Location.y;   OldP.x=EventInfo.Location.x; }
     }
     else if(EventInfo.Flags.Contains(TInteractiveGestureFlag::gfEnd))
           {//Жест закончен - не убирать, иначе не сработает TTouchAction::Up   }
     else
      {switch (EventInfo.GestureID)
       {case sgiRight:  DosomethingRight(); break;
        case sgiLeft:     DosomethingLeft();   break;
        case igiPan:      P.y=EventInfo.Location.y;   P.x=EventInfo.Location.x;  break;
       }
     }
    }
     //---------------------------------------------------------------------------
    void __fastcall TForm1::FormTouch(TObject *Sender, const TTouches Touches, const TTouchAction Action)
    {if (Action==TTouchAction::Up)  //Палец убран
      {// Обработка концовки свайпа, например
       FloatAnimation1->Start(); 
      }
    }
    void __fastcall TForm1::FloatAnimation1Finish(TObject *Sender)
    { Image->Visible=false;Image->Opacity=1;}
    ...........................................................
    PS советы по улучшению кода приветствуются, но у меня получилось так.
     
     
  2. Like
    nassl получил реакцию от Barbanel в Координата в процессе свайпа   
    Отвечу сам себе, чтобы не потерять .
    Итак, хочется ловить жесты влево, вправо и после лонгтап считывать координаты точки касания. В частности изменяется размер TImage, который скрывается по окончании свайпа запуском анимации в которой Opacity меняется от 1 до 0}.
    TPointF P, OldP;
    void __fastcall TForm1::FormGesture(TObject *Sender, const TGestureEventInfo &EventInfo,
              bool &Handled)
    {
     if (EventInfo.Flags.Contains(TInteractiveGestureFlag::gfBegin))
     {  switch (EventInfo.GestureID)  { case igiLongTap: OldP.y=EventInfo.Location.y;   OldP.x=EventInfo.Location.x; }
     }
     else if(EventInfo.Flags.Contains(TInteractiveGestureFlag::gfEnd))
           {//Жест закончен - не убирать, иначе не сработает TTouchAction::Up   }
     else
      {switch (EventInfo.GestureID)
       {case sgiRight:  DosomethingRight(); break;
        case sgiLeft:     DosomethingLeft();   break;
        case igiPan:      P.y=EventInfo.Location.y;   P.x=EventInfo.Location.x;  break;
       }
     }
    }
     //---------------------------------------------------------------------------
    void __fastcall TForm1::FormTouch(TObject *Sender, const TTouches Touches, const TTouchAction Action)
    {if (Action==TTouchAction::Up)  //Палец убран
      {// Обработка концовки свайпа, например
       FloatAnimation1->Start(); 
      }
    }
    void __fastcall TForm1::FloatAnimation1Finish(TObject *Sender)
    { Image->Visible=false;Image->Opacity=1;}
    ...........................................................
    PS советы по улучшению кода приветствуются, но у меня получилось так.
     
     
  3. Thanks
    nassl получил реакцию от #WAMACO в Настройки RAD studio 10.3   
    Отвечу себе сам.
    Для сброса Rad Studio 10.3 к дефолтным настройкам удаляем раздел реестра
    HKEY_CURRENT_USER\Software\Embarcadero\BDS\20.0
    После перегрузки системы все будет OK.
  4. Like
    nassl отреагировална krapotkin в Размеры TPanel   
    во время FormCreate еще не определены размеры
    лучше в OnShow, или OnResize
×
×
  • Создать...