Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > FireMonkey
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-03-2017
juniorSoft juniorSoft is offline
Miembro
 
Registrado: Apr 2005
Posts: 100
Poder: 14
juniorSoft Va por buen camino
Compartir FloatAnimation

Hola de nuevo Amigos,

Estoy creando un efecto para algunos botones específicos que al pasar el mouse sobre ellos se resalten haciéndose mas grandes, para ello estoy utilizando dos componentes FloatAnimations con la siguiente configuración:

1)En el Primer FloatAnimation modifico las propiedades
Durations = 0.5
PropertyName = Scale.X
StartValue = 1
StopValue = 1.2
Trigger = IsMouseOver=True
TriggerInverse =IsMouseOver=false

1)En el Segundo FloatAnimation modifico las propiedades
Durations = 0.5
PropertyName = Scale.Y
StartValue = 1
StopValue = 1.2
Trigger = IsMouseOver=True
TriggerInverse =IsMouseOver=false

Dichos componentes están colocados dentro de cada botón

La pregunta es, sin modificar el Default Style ya que modificaría todos los botones, es posible compartir esta funcionalidad para los botones que considere sin tener que agregar al CustomStyle o directamente a cada botón colocar los dos citados FloatAnimation, lo veo desde el punto de vista de los recursos consumidos ya que si tengo 100 botones por 2 FloatAnimation serian 200 FloatAnimation + 100 botones + todos los controles adicionales además de servirme esto para otros efectos que pueda crear.
Responder Con Cita
  #2  
Antiguo 07-03-2017
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
 
Registrado: Aug 2013
Ubicación: Argentina
Posts: 1.855
Poder: 9
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
No te preocupes por eso, hasta que sea un problema (es una maldita costumbre que tenemos en nuestro rubro)

No creo que se pueda compartir, cada efecto esta asociado a un control en particular. Como haria para detectar el MouseOver en cada boton?

Por otra parte, es como decir, si tengo 100 botones tengo 100 captions, 100 rectangulos, 30 azules, 30 rojos, 30 grises, ...
Responder Con Cita
  #3  
Antiguo 07-03-2017
juniorSoft juniorSoft is offline
Miembro
 
Registrado: Apr 2005
Posts: 100
Poder: 14
juniorSoft Va por buen camino
Hola AgustinOrtu Gracias por responder y por tus consejos,

Es una mania, a veces trato de hacer un equilibrio porque me gusta la genericidad, pensar en patrones antes que en resolver el problema especifico para cuando vuelva y se presente poder reutilizar pero no siempre es posible.

Imaginaba algo como asignar el parent del FloatAnimation en el evento pero cual evento si no existe un onBeforeMouseEnter del boton y asignarle nil en un evento que tampoco existe onAfterMouseOver, quizas debieron inventar un componente que sirva de intermediario para poder asignarle una lista de controles a los cuales aplicar el efecto, pero solo son quejas, hay que adaptarse a lo que se tiene.
Responder Con Cita
  #4  
Antiguo 07-03-2017
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
 
Registrado: Aug 2013
Ubicación: Argentina
Posts: 1.855
Poder: 9
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Creo haber explorado o leido algo sobre como estaban implementadas las Animaciones de FMX. Si mal no recuerdo, cada animacion envuelve a un thread que es el que realmente "realiza la animacion", es decir, el movimiento, el efecto, el lo que sea. Es logico porque al usar las animaciones la aplicacion no se bloquea, puesto que el trabajo esta en otro hilo. Ahora no se que tan "divertido" podria ser andar cambiandole al hilo el objeto que esta animando

En fin debes pensar en cada componente Animation como un Thread, y lo mas logico es que cada uno tenga el suyo.

En definitiva, hay muchos componentes que utilizan animaciones y efectos sin que te des cuenta, asi que si realmente te preocupa el "costo", hasta que no tengas un problema, no lo inventes

Si lo que te preocupa es lo poco practico que es crear una y otra vez la misma animacion y repetir codigo/componentes, eso se puede solucionar creando:

1. Tu propio componente si queres configurar todo en diseño
2. Crear todo en runtime, obviamente tenes que configurar todas las propiedades por codigo
Responder Con Cita
  #5  
Antiguo 07-03-2017
juniorSoft juniorSoft is offline
Miembro
 
Registrado: Apr 2005
Posts: 100
Poder: 14
juniorSoft Va por buen camino
Realmente todavía no es un problema y la aplicación funciona correctamente solo que buscaba reducir consumo de memoria quizás por futuras funcionalidades que sumen carga a la memoria, de todas formas tengo la facilidad de que los botones están colocados en expander y puedo en caso de ser necesario optimizar y crear los componentes FloatAnimation al expandir el expander valga la redundancia.

Gracias Nuevamente por la explicación
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Compartir recursos mefixxto Redes 3 20-05-2008 16:16:51
Es posible compartir carpetas por Internet utilizando compartir carpetas? JuanErasmo Windows 5 12-02-2007 20:45:17
Compartir BD en red karymas Firebird e Interbase 9 20-06-2005 12:57:57
Compartir una carpeta D@byt Varios 2 30-05-2005 19:03:29
Compartir una carpeta EdyBay API de Windows 0 14-06-2003 17:12:07


La franja horaria es GMT +2. Ahora son las 22:25:03.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi