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

Как использовать Жест снизу->вверх для скрытия/открытия панели?


Dozent

Вопрос

Добрый день, нашёл на форуме тему про жесты, но она уже закрыта. Пишу такой код, хочу добиться на планшете появление скрытой панели. 

Проблема в том, что на компе всё работает, а вот планшет не хочет реагировать, что подскажите?

procedure TMainForm.TabControlMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Single);
begin
  OldCursorY := Y;
end;

procedure TMainForm.TabControlMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Single);
begin
  NewCursorY := Y;
  if ABS(NewCursorY - OldCursorY) >= 50 then
    ShowHidePanel;
end; 
Ссылка на комментарий

Рекомендуемые сообщения

  • 0

Попробуй использовать стандартные жесты TGestureManager плюс анимацию TFloatAnimation

 

Пример 

type
  TfmMain = class(TForm)
    MenuHide: TFloatAnimation;
    MenuShow: TFloatAnimation;
    gmGesture: TGestureManager;
    pnMenu: TPanel;
    btHide: TButton;
    Rectangle1: TRectangle;
    Label1: TLabel;
    procedure btHideClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormGesture(Sender: TObject; const EventInfo: TGestureEventInfo;
      var Handled: Boolean);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  fmMain: TfmMain;

implementation

{$R *.fmx}

procedure TfmMain.btHideClick(Sender: TObject);
begin
  MenuShow.Stop;
  MenuHide.Start;
end;

procedure TfmMain.FormCreate(Sender: TObject);
begin
  MenuHide.StartValue := pnMenu.Position.Y ;
  MenuHide.StopValue := Self.ClientHeight;

  MenuShow.StartValue := MenuHide.StopValue;
  MenuShow.StopValue := MenuHide.StartValue;
end;

procedure TfmMain.FormGesture(Sender: TObject;
  const EventInfo: TGestureEventInfo; var Handled: Boolean);
begin
  if EventInfo.GestureID = sgiUp then
  begin
    MenuHide.Stop;
    MenuShow.Start;
  end
  else
    if EventInfo.GestureID = sgiDown then
    begin
      MenuShow.Stop;
      MenuHide.Start;
    end;
end;

 

Во вложении пример программы 

Primer.zip

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...