Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-08-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 26
vtdeleon Va por buen camino
Saludos
Cita:
He actualizado también el ejemplo adjunto de manera que también hace uso del evento susomentado.
????
He probado el "ejemplo", y no actualiza el statusbar cuando no esta activo:s,minimizado o en segundo plano.
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #2  
Antiguo 14-08-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.145
Poder: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

vtdeleon, ¿seguro que bajaste la actualización del ejemplo? ¿Te fijaste si se hace ya uso del evento "OnIdle"? A mí me funciona, esto es, tal como cabe esperar del mencionado evento: no es que se actualize la barra de estado "automáticamente", pero, cuando se produce el evento.

Cita:
Empezado por roman
Ahora, según la documentación, la comparación tendría que hacerse así:
Código Delphi [-]
  if GetKeyState(VK_CAPITAL) and 1 = 1 then
    ...
¿De dónde sacaste la información roman? Si hay que hacerlo de ese modo, entonces, ¿porqué funciona con algo así simplemente?

Código Delphi [-]
  if GetKeyState(VK_CAPITAL) = 1 then
    ...
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 14-08-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por dec
¿De dónde sacaste la información roman?
De aquí.

Según eso, el bit más alto indica si la tecla está oprimida mientras que el bit más bajo indica si la tecla está activa o no. Entonces, dado que la información que interesa está en el bit inferior, la aislamos con

GeyKeyState and 1

// Saludos
Responder Con Cita
  #4  
Antiguo 14-08-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.145
Poder: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Cita:
Empezado por vtdeleon

y no actualiza el statusbar cuando no esta activo:s,minimizado o en segundo plano.

Cita:
Empezado por german
Por eso digo que el OnIdle presenta el mismo "problema". Es por ello que me inclino por el timer.
No exactamente el mismo problema: la barra de estado se actualiza en cuanto el usuario pasa el ratón por la ventana (por ejemplo) sin ni siquiera activarla. Ya se ha ganado algo, por tanto.

Cita:
Empezado por dec
¿De dónde sacaste la información roman?
Cita:
Empezado por roman
Según eso, el bit más alto indica si la tecla está oprimida mientras que el bit más bajo indica si la tecla está activa o no. Entonces, dado que la información que interesa está en el bit inferior, la aislamos (...)
Pues gracias roman, por la información. Se tendrá en cuenta, pues.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #5  
Antiguo 14-08-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
De hecho, creo que por ahí va la explicación del comportamiento. Como tú lo usas en el evento OnKeyUp, la tecla no está oprimida. No habiendo entonces nada en el bit superior, el resultado coincide con el and.

// Saludos
Responder Con Cita
  #6  
Antiguo 14-08-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.145
Poder: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Bueno. Estupendo. No hubiera llegado ahí en años, y, aún así, no diré que he llegado, porque más bien me has llevado: veremos si sabría volver por mis pasos. Empero, aparte del evento "OnKeyUp" también llamo al procedimiento "ActualizarBarraEstado" en otros lugares programáticamente... claro que es posible que cuando lo haga (en varios lugares) no halla teclas pulsadas, ciertamente.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #7  
Antiguo 14-08-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.145
Poder: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Seamos un poco realistas respecto del uso del "TTimer" o el evento "OnIdle". Creo que, como ya he reconocido, el evento "OnIdle" puede ser más que suficiente para lo que perseguimos si la aplicación es un editor de textos, por ejemplo. El dato "el bloqueo de mayúsculas está activado" (o no) tampoco es especialmente crítico. Me explico. Con el evento "OnIdle" si nuestro editor se minimiza, por ejemplo, y en el ínterin se cambia el estado de algunas de las teclas especiales que nos ocupan, en cuanto el usuario restaure la ventana del editor, la información del estado de dichas teclas se actualizará, casi sin que pueda uno darse cuenta.

Ahora. Si estuviéramos haciendo una aplicación que mostrara, precisamente, el estado de las teclas en cuestión, pero de forma exclusiva, esto es, una aplicación específicamente diseñada para tal efecto, entonces sí podría ser lo suyo utilizar un "TTimer" con pocos milisegundos de intervalo para que, independientemente del estado de nuestra aplicación (minimizada, en segundo plano, etc.) esta mostrase la información correctamente actualizada "a cada momento". Habréis visto este tipo de aplicaciones: consisten en una ventana, casi siempre "On Top" que se dedica en exclusiva a la tarea que digo.

Así, pues, como siempre, o casi siempre, todo dependerá de qué pretendamos hacer... no hay para esto, como para casi nada, una guía, mejor dicho, una regla, algo que casi nos oblige a hacerlo de un modo en concreto. Quizá por esto también es atractiva la programación: que permite llegar al mismo lugar, acaso, pero por diferentes caminos, no mejores ni peores, sencillamente, distintos.
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 14-08-2005 a las 00:36:38. Razón: (corrección del texto)
Responder Con Cita
  #8  
Antiguo 14-08-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 26
vtdeleon Va por buen camino
Saludos
Cita:
Empezado por dec
Otra actualización: Soy estúpido a las veces. Acabo de probar lo que decías roman de utilizar el evento "OnIdle" y XEditor va de lujo así, mucho mejor, mucho más serio, como más pendiente de lo que le toca. He actualizado también el ejemplo adjunto de manera que también hace uso del evento susomentado. Gracias roman.
X
Que extra~o,:s Cuando hiciste la ultima actualizacion, el archivo no tenia el evento OnIdle y ya lo citado anterior lo tenias posteado.
Cita:
Empezado por dec
¿seguro que bajaste la actualización del ejemplo? ¿Te fijaste si se hace ya uso del evento "OnIdle"?
Ahora si, Grax
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #9  
Antiguo 14-08-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por vtdeleon
y no actualiza el statusbar cuando no esta activo:s,minimizado o en segundo plano.
Por eso digo que el OnIdle presenta el mismo "problema". Es por ello que me inclino por el timer.

// Saludos
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


La franja horaria es GMT +2. Ahora son las 00:56:07.


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