Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Desarrollo en Delphi para Android
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 15-11-2015
vicens22 vicens22 is offline
Miembro
NULL
 
Registrado: dic 2010
Posts: 61
Poder: 14
vicens22 Va por buen camino
uso de tAniIndicator - animación "Cargando..."

Buenos días,

Estoy intentando que al activar un nuevo form en que se accede a un registro en particular o cuando se realiza una consulta a un clientdataset, se muestre un mensaje de "Cargando datos", junto con un objeto tAniIndicator que muestre un cursor rotando de espera.
Lo he probado poniendo el objeto AniIndicator dentro de un tRectangle y también en un tPanel y en los dos casos el objeto AniIndicator aparece estático.



Código:
procedure TForm1.ShowLoading;
begin
  Panel2.Position.X := (FormFactor.Width - panel2.Width) / 2;
  panel2.Position.Y := (FormFactor.Height - panel2.Height) / 2;
  panel2.Visible := True;
  panel2.BringToFront;
  Application.ProcessMessages;
end;
¿ Cual sería la forma correcta de conseguir ese efecto ?
Por otro lado, tampoco veo la forma de cambiar el estilo y color del objeto tAniIndicator.

Gracias por cualquier ayuda o sugerencia.

Saludos
Responder Con Cita
  #2  
Antiguo 15-11-2015
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Pegale una ojeada al demo del TActivityIndicator
Responder Con Cita
  #3  
Antiguo 15-11-2015
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Estas de buenas, me quedo compilado el demo en cuestion

Revisa la propiedad Animate (Boolean). Cuando esta a True, anima

Para el estilo tenes 3 variantes, controladas por la propeidad IndicatorType

Color solamente dispones entre blanco o negro, revisa la propiedad IndicatorColor

Tambien podes modificar el tamaño, usando la propiedad IndicatorSize

Lee tambien la documentacion


Por otro lado yo siempre recomiendo no usar el Application.ProcessMessages, y mejor utilizar Threads para ejecutar trabajo pesado y que el MainThread siga controlando la UI

Tene en cuenta que la animacion del TActivityIndicator ocurre en el MainThread.

Código Delphi [-]
procedure Calcular;
begin
  Indicator.Animate := True;
  try
    { Ejecutar proceso largo, lo voy a simular con Sleep }
    Sleep(5000);
  finally
    Indicator.Animate := False;
  end;
end;

En ese codigo, al ejecutarse la llamada a Sleep, o bien cuando llamas a un proceso que tarda, el MainThread se congela y asi mismo la animacion, parece que quedo "tildado"

La solucion es ejecutar el trabajo pesado en un thread. Hay un monton de ejemplos por el foro, solo queria puntualizarlo

Última edición por AgustinOrtu fecha: 15-11-2015 a las 17:04:10.
Responder Con Cita
  #4  
Antiguo 15-11-2015
vicens22 vicens22 is offline
Miembro
NULL
 
Registrado: dic 2010
Posts: 61
Poder: 14
vicens22 Va por buen camino
Gracias, pero creo que todo lo que comentas hace referencia a un objeto distinto.
La aplicación que estoy creando es para Android, utilizando FMX, por eso lo publiqué en este foro.

El código y propiedades a las que haces referencia, si no me equivoco son del siguiente componente VCL.

Vcl.WinXCtrls.TActivityIndicator

Yo estoy intentando utilizar , el siguiente, creo que equivalente en FMX para Android e IOS.

FMX.StdCtrls.TAniIndicator

Estoy utilizando Delphi Seattle 10.

Gracias igualmente por tu ayuda.
Saludos
Responder Con Cita
  #5  
Antiguo 15-11-2015
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Pequeño desliz

Para animarlo en FMX es Indicator.Enabled := True (False obviamente lo contrario)

Despues hay una propiedad Style para modificar un poco la apariencia

El tamaño en este caso lo definis como en cualquier control FMX (Size.Height y Size.Width)

Para el color es mas complicado.. tenes que editar el estilo del objeto FMX. Eso se hace desde el IDE, boton derecho sobre el control, edit custom style o edit default style. Luego tenes que manipular los bitmap (los styles en FMX son basados en bitmaps). Es bastante engorroso pero se podrian hacer cosas bastante potentes, tenes control absoluto de la apariencia del control

En este video muestran algo
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
Usar TServerSocket y TClientSocket para enviar "streams" más o menos "grandes" dec Internet 9 04-08-2015 17:11:50
Existe algun componente "linea" y "vista miniatura"? DSK25 C++ Builder 6 09-06-2013 02:23:05
Imagen de "Cargando" con InstallShield anzora Varios 1 26-10-2011 12:29:04
El programa se queda "colgado" mientras copia y luego "despierta" NeWsP OOP 5 10-03-2010 23:05:40
Necesito llamar a métodos de clases "hija" desde su clase "padre" Flecha OOP 17 20-04-2007 01:03:53


La franja horaria es GMT +2. Ahora son las 20:57:38.


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