Página 1 de 1

Tengo problemas con repintado usando TProcess

Publicado: Sab Ago 11, 2007 9:32 am
por Carlos Ortiz
Arme un menu en xailer y en algunas opciones del mismo llamo a programas en
xailer, en otros casos llamo ejecutables que tengo en Fivewin y quiero
usarlos asi hasta que los pase a xailer, el tema se produce al mover la
ventana (pinta caracteres de los bordes y se ensucia todo bastante feo) con
el exe externo llamado desde un objeto tprocess, con execute() pasa lo mismo
si le pongo la clausula lWait en .t. en cualquiera de los dos casos para que
se detenga hasta que salga, si la clausula esta en .f. anda bien solo que
pueden salir del menu y dejar todos los otros ejecutables en funcionamiento.
Gracias y Salu2.

Tengo problemas con repintado usando TProcess

Publicado: Sab Ago 11, 2007 12:00 pm
por notengo
Carlos,
la propiedad lWait sólo deberí­a utilizarse en procesos muy rápidos.
Intenta darle tiempo al procesador para pueda procesar todos los mensajes
que recibe del sistema.
WITH OBJECT TProcess...
:cName := ...
:Run()
WHILE :IsRunning()
SysRefresh()
END
END
Saludos,
José Lalí­n

Tengo problemas con repintado usando TProcess

Publicado: Sab Ago 11, 2007 9:32 pm
por Carlos Ortiz
Gracias Jose,
no surte efecto sigue repintando mal.
Este el codigo que llama a un exe externo
METHOD Menu1Item1_1Click( oSender, oMenu ) CLASS TInicio
WITH OBJECT ::TProcess:=TProcess()
::TProcess:cName := "assistcuponescupones.exe"
:lWait := .t.
:Run()
WHILE :IsRunning()
:SysRefresh()
END
END WITH

Tengo problemas con repintado usando TProcess

Publicado: Sab Ago 11, 2007 9:46 pm
por notengo
Carlos,
> :lWait := .t.
¿ Has probado sin esta lí­nea ? Date cuenta que le estás diciendo al sistema
que ejecute el proceso y no retorne a la aplicación que lo llama, por tanto
el bucle que tienes después nunca se ejecuta.
Saludos,
José Lalí­n

Tengo problemas con repintado usando TProcess

Publicado: Dom Ago 12, 2007 5:56 am
por Carlos Ortiz
Si justamente esa es la idea, llamar a otra aplicacion, aplicación
desarrollada en fivewin que por ahora no adaptare a xailer, quiero
ejecutarla desde el menu en xailer que funcione como un dialogo y que tengan
que cerrarla para luego poder continuar con otras opciones del menú que si
ya están en xailer.
Atte. CO. y muchas gracias, si tenes alguna idea de como me conviene llamar
a exes externos o cerrandolos desde xailer al salir tambien seria de mucha
ayuda.
Nuevamente gracias.

Tengo problemas con repintado usando TProcess

Publicado: Lun Ago 13, 2007 9:56 pm
por jfgimenez
Carlos,
> Si justamente esa es la idea, llamar a otra aplicacion, aplicación
> desarrollada en fivewin que por ahora no adaptare a xailer, quiero
> ejecutarla desde el menu en xailer que funcione como un dialogo y que
> tengan que cerrarla para luego poder continuar con otras opciones del menú
> que si ya están en xailer.
>
> Atte. CO. y muchas gracias, si tenes alguna idea de como me conviene
> llamar a exes externos o cerrandolos desde xailer al salir tambien seria
> de mucha ayuda.
Lo mejor que puedes hacer es ejecutar el segundo programa y desactivar la
ventana principal mientras esté corriendo. Sería algo así:
METHOD Menu1Item1_1Click( oSender, oMenu ) CLASS TInicio
WITH OBJECT ::TProcess:=TProcess()
::TProcess:cName := "assistcuponescupones.exe"
:lWait := .t.
:Run()
Application:oMainform:Disable()
WHILE :IsRunning()
:SysRefresh()
END
Application:oMainform:Enable()
END WITH
De esta forma dejas que el programa responda a los mensajes de windows
(incluidos los de pintado) al tiempo que impides que el usuario pueda hacer
click e interactuar con tu programa.
--
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info