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 14-08-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.142
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
  #2  
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
  #3  
Antiguo 15-08-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.142
Poder: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Yo, de nuevo. Con mis escrúpulos. Y es que no dejo de pensar en la solución del "TTimer" que dice roman. ¿Qué tanto consume un "TTimer"? ¿Es una especie de fobia sin sentido la que, al menos en cuanto a mí se refiere, existe contra los "TTimer", que nos parece una locura utilizarlos, en cuanto a consumo de recursos se refiere?

Pero, si hemos quedado más arriba en que la mejor forma de mantener los datos que nos interesan en este hilo (recuerdo, el estado de ciertas teclas especiales, como Bloq. Mayús, etc.) es, precisamente, utilizar un "TTimer", ¿a qué no utilizarlo, pues, cuando es menester mostrar estos datos debidamente actualizados, sea el tipo de aplicación que sea?

¿Es esa supuesta fobia contra los "TTimer" algo que solo está en mi imaginación o sucede a otros programadores (vaya, incluyéndome en el grueso de ellos) lo mismo? En algún Hilo de estos Foros roman comentaba que las máquinas, los ordenadores, no son como nosotros... a ellas no les importa que un "TTimer" esté haciendo su trabajo incluso cada pocos milisegundos.

Uno se para a pensar que cada 23 milésimas de segundo se va a ejecutar determinada instrucción o instrucciones y piensa enseguida, ¡eso es demasiado! ¡Vamos a consumir muchos recursos! ¿Pero es realmente así? Y, cuando así fuera, si se demostrara cierto el consumo de tantos recursos, podríamos tener razones para negarnos a usar "TTimer", pero, ¿cómo, irrazonablemente, nos negamos, sin saber de veras qué tantos recursos se consumen?

Desde luego, es lo que me sucede a mí con los "TTimer". Fobia, contra ellos, pero fobia irracional, sino es ya que por ser fobia algo sea irracional al mismo tiempo. Y hago uso de "TTimer", pero, digamos, cuando la cosa está bajo control (eso me creo yo), por ejemplo, mientras se están buscando archivos en el disco duro: sabemos de antemano que la búsqueda terminará, o se cancelará, pero, en todo caso, el "TTimer" acabará deshabilitado en un momento u otro.

Pero, ¿un "TTimer" desde que se inicia el programa hasta que este se cierra? ¡Ni por pienso! Pienso yo... seguramente equivocado, porque no lo hago con razones suficientes, sino por la fobia que ya he dicho. Este es mi escrúpulo con respecto a lo que se trata en este Hilo. No sé si probar el método, pues, que roman refiere como el mejor para lograr los mejores resultados para lo que se pretende aquí.

Digo probarlo en el editor de textos que me traigo entre manos, y comprobar de una vez si es para tanto el consumo de recursos o no es para tanto como me parece a mí, vuelvo a decir, sin siquiera haberlo probado, solamente por no sé qué reparos ante los "TTimer". Veremos.

Disculpad el rollo, por favor, pero, como escrúpulo, no podía dejarlo pasar.
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 15-08-2005 a las 23:01:37. Razón: (corrección del texto)
Responder Con Cita
  #4  
Antiguo 15-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
No sé si probar el método, pues, que roman refiere como el mejor para lograr los mejores resultados para lo que se pretende aquí
Si dije que éste era el mejor método ha sido por error. Lo que yo recuerdo haber dicho es que éste era el método por el que yo me inclinaría y di razones de porqué me parece mejor. Pero yo no soy dueño de la verdad.

Sea o no el mejor método, hay algo en lo que quiero aclarar mi opinión.

Como bien dices,

Cita:
Empezado por dec
El dato "el bloqueo de mayúsculas está activado" (o no) tampoco es especialmente crítico
De hecho, yo no pondría una información que normalmente ya se puede ver directamente en las luces del teclado, no le veo caso.

Otra cosa es el estado de la tecla INSERT. Si alguien oprime INSERT estando nuestra aplicación inactiva, no espero que ésta se actualice por el simple hecho de que a diferencia de CapsLock y NumLock, el estado de la tecla INSERT no es global, sino que es dependiente de la aplicación. Dicho de otra forma, pueden tenerse dos editores simultáneos, uno en modo de inserción y el otro en modo de sobrescritura.

Ahora bien, en mi opinión, no siendo crítico el poner el estado de CapsLock y NumLock, yo no lo pondría, pero si lo pongo, entonces intentaré que funcione a la perfección y no que casi funcione.

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

Cita:
Empezado por roman
Si dije que éste era el mejor método ha sido por error. Lo que yo recuerdo haber dicho es que éste era el método por el que yo me inclinaría y di razones de porqué me parece mejor. Pero yo no soy dueño de la verdad.
No; no ha sido error tuyo, sino que, yo, puesto que tú lo decías, lo daba por el mejor. Pero, llevas razón roman, no estás en posesión de la verdad: nadie lo está. Empero, ciñéndonos a lo que tratamos es probable que estés más cerca de la mejor solución que yo, al menos.

Cita:
Empezado por roman
De hecho, yo no pondría una información que normalmente ya se puede ver directamente en las luces del teclado, no le veo caso.
¿Entonces tenemos que pensar que todos los teclados cuentan con esas luces? ¿Que todos los que cuentan con ellas funcionan bien? No te confundas, me aproximo a tu opinión en esto. Respecto de lo de la tecla INSERT es algo en que quizá no hubiera caido, pero estoy de acuerdo contigo, obviamente.

Cita:
Empezado por roman
Ahora bien, en mi opinión, no siendo crítico el poner el estado de CapsLock y NumLock, yo no lo pondría, pero si lo pongo, entonces intentaré que funcione a la perfección y no que casi funcione.
Ejem... ¿Entonces tienes algún método que elegirías para considerar que todo está funcionando a la perfección? ¿En este caso se trata de un "TTimer" cada pocos milisegundos? ¿Me equivoco?
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 15-08-2005 a las 23:43:32. Razón: (corrección del texto)
Responder Con Cita
  #6  
Antiguo 15-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
¿Entonces tenemos que pensar que todos los teclados cuentan con esas lueces? ¿Que todos los que cuentan con ellas funcionan bien?
Hasta ahora no he visto nunca un teclado que no disponga de esas luces, pero en todo caso, no creo que mi aplicación deba solventar la carencia o mal funcionamiento del hardware.

Cita:
Empezado por dec
Ejem... ¿Entonces tienes algún método que elegirías para considerar que todo está funcionando a la perfección? ¿En este caso se trata de un "TTimer" cada pocos milisegundos?
No importa que método use; lo que quiero decir con "perfección", es que, en caso de querer mostrar el estado de CapsLock y NumLock en mi aplicación, entonces veré la forma de que tal estado se refleje en todo momento.

Además del Timer se me ocurre un thread aparte en donde hacer la actualización o bien usar ambos, el Timer y el OnIdle, habilitando el timer cuando la aplicación se desactive e inhabilitándolo cuando se active.

// Saludos
Responder Con Cita
  #7  
Antiguo 15-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
Por cierto, lo que sí he visto son teclados sin la tecla ScrollLock, pero en realidad jamás he sabido para qué diantres sirve. Ni siquiera en los tiempos del DOS.

// 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 16:45:38.


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