Ver Mensaje Individual
  #2  
Antiguo 30-06-2021
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.293
Reputación: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Dependerá de cómo tengas montada la aplicación que estás desarrollando.
Se me ocurren 2 formas de hacerlo, pero como digo dependerá de los componentes que tengas; Podrías hacer una prueba a ver qué tal.

1) Por un lado se me ocurre que si tienes un ScrollBox (en este caso vertical), que sería el equivalente a lo que tiene WhatsApp, podrías utilizar el desplazamiento del ScrollBox.
Puedes saber si el scrollBox se mueve hacia arriba o hacia abajo. Puedes utilizar esa información para ocultar/visualizar el panel/toolbar superior.
si a eso le añades una "FloatAnimation" para que se oculte/visualize de forma suave, puedes conseguir lo que necesitas.


NOTA: En este ejemplo he utilizado 2 botones para que se pueda probar manualmente, pero no los necesitas. Puedes activar las animaciones (una para ocultar y otra para visualizar) directamente desde los eventos del ScollBox.






El evento de cambio sería:


Código Delphi [-]
procedure TForm3.VertScrollBox1ViewportPositionChange(Sender: TObject;
  const OldViewportPosition, NewViewportPosition: TPointF;
  const ContentSizeChanged: Boolean);
begin
  Label2.Text := Format('oldPosición=%f - Newposition=%f ', [OldViewportPosition.Y, NewViewportPosition.Y]);
  if NewViewportPosition.Y > OldViewportPosition.Y then begin
    // bajar
    Button2Click(nil);
  end
  else if NewViewportPosition.Y < OldViewportPosition.Y then begin
    Button1Click(nil);
  end;
end;


Y uno de los botones (el otro sería equivalente) sería:

Código Delphi [-]
procedure TForm3.Button1Click(Sender: TObject);
begin
  if Animando or Oculto then
    Exit;
  Animando := True;
  Oculto := True;
  FloatAnimationOcultar.Start;
end;


2) Otra opción es probar con el componente de GestureManager, para detectar estas en concreto y hacer lo mismo que desde los eventos del scrollbox.
Este no lo he usado, así que no te lo puedo asegurar al 100%.

Te adjunto el ejemplo anterior.
Archivos Adjuntos
Tipo de Archivo: zip ScrollAppWhatsApp.zip (56,2 KB, 6 visitas)
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita