Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Application.Busy
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Application.Busy 
 
Buenos días!.

Veréis, estoy liado con bases de datos y he fusionado el ejemplo del manual de gambas con el ejemplo de base de datos que se encuentra en la granja.
De esta forma puedo crear las consultas, escribiéndolas manualmente en un TextArea. Actualmente estoy haciendo algún que otro ejemplo del libro
SQL fácil de Pere Chardi García con gambas. El directamente lo hace en su web mediante una consola.

Tengo que cambiar de navegador cuando hago las practicas online, ya que es difícil recordar...¿ estoy bajo un navegador ?.
Pulsas una tecla y todo al traste..si, ejemplo, la tecla Retroceso bajo FireFox.  

Pues bien. Tomando el tema. Esta instrucción:

Applicantion.Busy nos dice la ayuda de Gambas:

Citar:

Modifies the busy state of the application.
When this property is greater than zero, the mouse cursor is locked to the busy cursor to show that the application is busy and does not respond to user events.
You should increment this property when your application starts a long job, and decrement it when the job is terminated. This way, you will be able to nest jobs without a mouse change flicker.
Don't forget to decrement this property even if the job fails!


Sobre todo lo hace cuando lee cuantos registros pueden obtenerse en una consulta.
En el ejemplo de la granja usa el incremento y decremento.

Public Sub LeerDatos()
  
  Dim hField As ResultField
  Dim iIndice As Integer
  
  Inc Application.Busy
  
  grdConsulta.Rows.Count = 0
  
  grdConsulta.Columns.Count = $rData.Fields.Count
  
  For Each hField In $rData.Fields
    
    With hField
      
      grdConsulta.Columns[iIndice].Text = .Name
      grdConsulta.Columns[iIndice].Width = 100
    End With
    Inc iIndice
    
  Next
  
  grdConsulta.Rows.Count = $rData.Count
  
  Finally
    
    Dec Application.Busy
    
  Catch
    
    Message.Error("No pudo ejecutarse: " & "\n\n" & DConv(Error.Text))
    
End
 


¿ Soléis usarlo vosotros ?.
¿ Podéis contar alguna experiencia ?

Es algo que jamas he usado.

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
última edición por Shell el Sabado, 22 Octobre 2016, 09:54; editado 1 vez 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Application.Busy 
 
Yo lo uso constantemente en cualquier proceso que sepa que no es instantáneo. Por ejemplo, al grabar un registro a la bd, al abrir un fichero, al consultar algo en la bd, etc.
Es simplemente genial.
Eso sí, como dice al final, acuérdate de decrementarlo incluso en caso de error o te encontrarás un cursor giratorio imposible de quitar de la pantalla...
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Application.Busy 
 
Shell:

Yo también lo he usado... sobre todo a la hora de descomprimir archivos o procesos que se que van a tardar un tiempo y no quiero que de la impresión de que se ha colgado el programa.

El tema de incrementar o decrementar el valor, es útil por si no sabes que nivel "de ocupado" tienes en ese preciso instante en tu aplicación.

Me explico:
Imagina que tienes un juego, donde cada ficha o pieza  tiene que pensar (un algoritmo minimax. o algo que se tarde un tiempo en ejecutarse).

Bien, se pone una a pensar, sube a un nivel:
Citar:
Inc Application.Busy

Ahora application.busy es igual a 1
Termina de pensar, y baja un nivel:

Ahora la application.busy es igual a 0.

sin problemas ¿no?

Ahora lo hacemos mas complicado el ejemplo:
Ejemplo 2:
Una pieza se pone a pensar (+1) y luego otra (+1, application.busy=2) y luego otra más (+1, application.busy=3)
Terminan dos piezas (me da igual cual de ellas)  de pensar (-1 y -1), como aun tengo una pieza pensando, el valor de applicaction.busy es  igual a 1, y sigo con el icono del reloj en el puntero del ratón.

Como ves, si simplemente fuera application.busy un valor boolean ( encendido o apagado), no consiguimos el efecto del 2º ejemplo.

Saludos
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Application.Busy 
 
Shordi:

Citar:

Yo lo uso constantemente en cualquier proceso que sepa que no es instantáneo. Por ejemplo, al grabar un registro a la bd, al abrir un fichero, al consultar algo en la bd, etc.
Es simplemente genial.


Pero supongo que más que grabar un registro que no debe tardar ( seguramente habrá un según "ubicación" ), debería ser más para una lectura o un proceso
que sea bien largo.

Julio:

Como estoy con bases de datos pequeñas no veo un tiempo grande de espera. Ya que por ahora lo más fueron 16 registros.  
En cuanto a la idea del juego , es muy buena.

Si no se ha colgado la aplicación.  

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Application.Busy 
 
Shell:

Citar:
Como estoy con bases de datos pequeñas no veo un tiempo grande de espera. Ya que por ahora lo más fueron 16 registros.

Si, pero si dejas  programada un código para las posibles esperas, es algo que te lo tienes ya currado y solucionado.
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Base De Datos Y Application.path Dani26 Aplicaciones/Fragmentos de Código 4 Miercoles, 23 Febrero 2011, 05:45 Ver último mensaje
razaAztk
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron