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 17-09-2014
engranaje engranaje is offline
Miembro
 
Registrado: may 2011
Posts: 163
Poder: 16
engranaje Va por buen camino
Por intentar aportar algo os cuento mi opinión,corregidme si me equivoco o no estoy entendiendo algo.

Cuando una aplicación desarrollada en delphi crea ventanas y las muestra al final lo que hace es utilizar la vcl que realmente encapsula la api de windows. Lo que sucede realmente es que utilizando la api crea ventanas y le dice al sistema a que aplicación pertenece y en que orden se muestra dentro de la aplicación.
La cosa puede ser algo mas complejo porque puede darse el caso de que se este mostrando una ventana por encima del resto sin que realmente esta sea la activa, esto puede darse por ejemplo en procesos largos en los que decida mostrarse un form que se vaya actualizando para mostrar cierta información en cada iteración del bucle que realmente se esta actualizando en el form desde el que se llama. Yo he de confesar que hago esto en algunas ocasiones y para evitar este tipo de problemas suelo utilizar DisableTaskWindows y EnableTaskWindows para hacer la ventana que muestra información pseudomodal de modo que permita continuar el proceso desde el que se muestra pero desactive el resto de mensajes.

He de confesar que en ocasiones al crear formularios lo he hecho alegremente sin prestar demasiada atención al parent y al owner del form que se creaba, esto también me ha dado quebraderos de cabeza con el zorder, Lo que suelo hacer ahora y me ha evitado gran parte de ellos es crear los forms cuando sea posible con el form desde el que se llaman como owner y parent , y no con application o nil.

El so tiene un sistema para saber cual es la aplicación activa y para organizar el orden de cada una de las aplicaciones visuales que se estan ejecutando (para saber cual se muestra sobre cual) y a su vez otro para saber para cada aplicación cual es la ventana activa y en que orden se muestran todas esas ventanas. Ese sistema es el que microsoft ha ido cambiando a lo largo de los años esto cambios pueden dar como resultado el comportamiento distinto de la aplicación, ya digo según la versión de la dll que se tenga.

En este caso en particular el problema parece suceder cuando la aplicación pasa a estar inactiva (porque se active otra). Aqui vuelvo a poner una curiosidad, En alguna ocasión me tiene sucedido algo similar cuando desde mi aplicación se pasaba a una aplicación office (word,excel...) y despues volvia a ella, sin embargo todo iba correctametne, cuando alternaba entre mi aplicación y el bloc de notas o el oppen office. Si no me equivoco al volver a activarse la aplicación el so revisa el orden de las ventanas que le consta y activa también la ventana que le consta. En este punto es donde yo creo que esta el problema, es posible que en este punto el so decida que una ventana inactiva se muestre por encima de la activa, igual y dependiendo de la ventana con el teclado o con el traer al frente del administrador de tareas se puede salir del apuro, pero desde luego no con el ratón.

Mi recomendación es comprobar la versión de la User32.dll del cliente en que sucede esto y compararla con la versión de la misma dll de otro cliente en la que no suceda, despues toca revisar la msdn para comprobar si ha habido modificaciones y cuales han sido y tomar las medidas pertinentes.

Última edición por engranaje fecha: 17-09-2014 a las 10:37:02.
Responder Con Cita
  #2  
Antiguo 17-09-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola engranaje.

Sumado a las pruebas que han realizado, lo que planteas no es incoherente y considero muy probable que por ahí pase tanto el comportamiento como el encausamiento del mismo.

Pero lo que yo me cuestiono es: ¿ Debe mi programa reaccionar de modo diferente al resto de las aplicaciones que corren en un equipo ?, por que ante WIN+D, el efecto se produce hasta con el mismísimo Símbolo del sistema...

Con esto apunto (siempre que la situación se produzca por una combinación de teclas), a que creo mas simple explicar una vez que la cosa es así para todo programa que trabaje en ese equipo, que alterar el normal comportamiento del S.O. Es más, estoy convencido que con tiempo se acostumbrarán a esa conducta y la que terminará dando la nota disonante será nuestra aplicación.

shoulder comenta en el mensaje #1, que con sólo hacer acto de presencia + un click en la barra de tareas, se restaura la aplicación funcionando normalmente (tál como se esperaría de cualquier otra). ¿ Tán difícil es para el empleado hacer lo mismo ?

Y por supuesto, no descarto, que yo haya entendido mal la consulta planteada en el orígen del hilo y el problema sea otro...

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 17-09-2014
shoulder shoulder is offline
Miembro
 
Registrado: abr 2008
Posts: 441
Poder: 19
shoulder Va por buen camino
Minimizar

Ecfisa entendiste perfecto, el programa no se bloquea simplemente hacen un click en la barra de tareas y aparece la ventanita de showmessage, msg o form hijo y prosigue normalmente. Lo que te aseguro que pasa esto cuando lee el token de firma digital despues del java donde te sale para poner clave de firma digital ahi comienza el delphi a hacer estas cosas extrañas. En forma aleatoria a veces pasa tambien me parece que es despues de usar los active del word.

Se que con un click se soluciona, pero me llaman y me dicen se bloqueooo, busque y no encuentro manera despues de la ventana propia del Token o firma digital como recomponer esto. Me comenzo esto con windows 7.
Gracias
Responder Con Cita
  #4  
Antiguo 17-09-2014
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 23
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
shoulder,
Cita:
Empezado por shoulder
...hay algo entre Delphi 7 y Windows 7 que con el uso de CAPICOM, JSignPdf o librerías de Word o Excel es como que lo desconfiguran...
Cita:
Empezado por shoulder
...te aseguro que pasa esto cuando lee el token de firma digital después del java donde te sale para poner clave de firma digital ahí comienza el Delphi a hacer estas cosas extrañas...En forma aleatoria a veces pasa también me parece que es después de usar los Active del Word...no encuentro manera después de la ventana propia del Token o firma digital como recomponer esto...Me comenzó esto con Windows 7...


Pregunto:

1- ¿Con que versión de Windows, no se presento el problema descrito?.

2- ¿El problema descrito, se presenta en todas las máquinas que utilizan la aplicación de Delphi en cuestión?.

3- ¿Todas las máquinas en donde se presenta el problema, usan la aplicaciones CAPICOM, JSignPdf, Word y/o Excel?.

Espero sea útil

Nelson.
Responder Con Cita
  #5  
Antiguo 17-09-2014
shoulder shoulder is offline
Miembro
 
Registrado: abr 2008
Posts: 441
Poder: 19
shoulder Va por buen camino
Minimizar

Hola la implementacion la hice con windows 7, antes programe con XP y en mi PC no me pasaba ahora si me pasa con W7.
Todos tienen Windows 7
Todos usan capicom y Jsingn.
Responder Con Cita
  #6  
Antiguo 17-09-2014
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 23
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
shoulder,

Cita:
Empezado por shoulder
...antes programe con Windows XP y en mi PC no me pasaba ahora si me pasa con Windows 7...Todos tienen Windows 7, CAPICOM y JSignPdf...


Pregunto:

1- ¿El programa en Delphi en cuestión, es exactamente el mismo que en Windows XP o a sido modificado en Windows 7?, ¿Cual es la función del programa en Delphi?.

2- ¿La versión de CAPICOM y JSignPdf, es las misma que en Windows XP o es una nueva versión?.

3- ¿Cual es la versión de CAPICOM y JSignPdf que usan actualmente?, ¿Es la misma en todas las máquinas?.

4- ¿Todas las máquinas que usan el programa en Delphi, CAPICOM y JSignPdf fallan aleatoriamente?.

Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 17-09-2014 a las 22:27:26.
Responder Con Cita
  #7  
Antiguo 18-09-2014
shoulder shoulder is offline
Miembro
 
Registrado: abr 2008
Posts: 441
Poder: 19
shoulder Va por buen camino
Minimizar

1) El programa es el mismo, nada mas que la implementacion la hice sobre W7, antes en mi pc tenia xp y me migraron tambien a w7 32 bits, pero los usuarios trabajan en w7 64 bits.
2) el programa en una parte firma documentaciones varias.
3)las versiones son siempre las mismas
4) Fallan aleatoriamente todas

Ejemplo : secuencia Normal: Menu - Form1 -ventana Java de pedido de clave - showmessage o msg.
La primera vez lo hace bien, cuando firmo un segundo documento el showmessage me lo muestra asi.
secuencia : Form1 - Menu -Showmessage o directamente el showmessage o form1 minimizado.
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
cronometro minimizado kurono Varios 3 22-01-2009 06:42:14
Arranque minimizado Dado de baja Varios 2 25-06-2008 11:54:59
Minimizado de Formularios Michel Varios 0 16-08-2003 00:00:16
Restaurar un report minimizado MANU1102 Impresión 4 04-08-2003 14:41:27


La franja horaria es GMT +2. Ahora son las 02:09:06.


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