Linux y Wine, problema al cerrar ventanas

Linux y Wine, problema al cerrar ventanas

Postby alvaro533 » Sun Feb 14, 2010 7:37 pm

Hola a todos.

Estoy ejecutando programas hechos con FWH en linux (ubuntu), mediante Wine. La verdad es que funciona muy bien. Me dado cuenta que si se usan ventanas MDI, a veces las dibuja fuera de la pantalla y no se ven. Lo mismo ocurre con las MDIChild. Lo he solucionado añadiendo estas líneas antes de activar la ventana.
Code: Select all  Expand view

oWnd:SetCoors( TRect():New( 20 , 20 , 750, 1000 ) )
 


Ahora tengo otro problema. Abro una ventana child y en ella dibujo un xbrowse. Cuando cierro la ventana, me interesa que se cierre la base de datos del browse. Lo hago de este modo

Code: Select all  Expand view

   DEFINE window vv:oWnd2 mdichild of oWnd title "titulo" icon icon1
   vv:oBrw := TXBrowse():New( vv:oWnd2 )
....etc.
    Activate window vv:oWnd2 valid  salir(vv)
return nil

// ------------------------------------------------------- //
static function salir(vv)
(vv:cAlias)->( dbclosearea() )
return .t.
 


Pues bien, esto da un error :
Error description: Error DBCMD/2001 Workarea not in use: ORDKEYCOUNT

El error es debido a que windows intenta repintar el browse una vez que ya he cerrado la base de datos. Esto lo soluciono añadiendo estas líneas antes de cerrar la base de datos:

Code: Select all  Expand view

vv:oBrw:setfocus()
vv:oBrw:cAlias:=""
 


Esto en "windows" como digo, funciona bien, pero en Wine me sigue dando el error de "Workarea not in use"

¿A alguien le ha pasado lo mismo? ¿Tiene solución?

Muchas gracias.

Alvaro
alvaro533
 
Posts: 206
Joined: Sat Apr 19, 2008 10:28 pm
Location: Madrid, España

Re: Linux y Wine, problema al cerrar ventanas

Postby Antonio Linares » Sun Feb 14, 2010 8:32 pm

Alvaro,

Has probado a invertir esas lineas ?
Code: Select all  Expand view

vv:oBrw:cAlias:=""
vv:oBrw:setfocus()
 
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41468
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Linux y Wine, problema al cerrar ventanas

Postby alvaro533 » Sun Feb 14, 2010 9:33 pm

Hola Antonio.

Gracias por contestar. Acabo de probar lo que dices. Da el mismo error.

Alvaro
alvaro533
 
Posts: 206
Joined: Sat Apr 19, 2008 10:28 pm
Location: Madrid, España

Re: Linux y Wine, problema al cerrar ventanas

Postby alvaro533 » Mon Feb 15, 2010 10:08 am

He conseguido hacer que funcione, aunque me gustaría conseguir la solución con menos líneas y sin necesidad de abrir otra ventana mdichild.
Alvaro

Code: Select all  Expand view

//----------------------------------------------------------------------------//
   DEFINE window vv:oWnd2 mdichild  of oWnd title "titulo"  icon icon1
   vv:oBrw := TXBrowse():New( vv:oWnd2 )
....etc.
    Activate window vv:oWnd2 valid  salir(vv)
return nil

//----------------------------------------------------------------------------//
static function salir(vv)
local oWnd3
local otimer

DEFINE window oWnd3 mdichild of oWnd title "Cerrando"
DEFINE TIMER otimer INTERVAL 100 ACTION ownd3:end() OF ownd3
ACTIVATE TIMER otimer
   oWnd3:SetCoors( TRect():New( 50 , 50 , 2, 2 ) )
Activate window oWnd3  valid salir2(vv,otimer)

return .t.

//----------------------------------------------------------------------------//
static function salir2(vv,otimer)

RELEASE TIMER otimer
(vv:cAlias)->( dbclosearea() )
... etc (otras líneas de tareas al cerrar)

return .t.
 
alvaro533
 
Posts: 206
Joined: Sat Apr 19, 2008 10:28 pm
Location: Madrid, España

Re: Linux y Wine, problema al cerrar ventanas

Postby alvaro533 » Thu Mar 11, 2010 10:11 pm

He visto que hay una nueva data bPostEnd en TMdiChild. ¿Soluciona este problema? ¿Cómo está hecho?

Un saludo,

Alvaro
alvaro533
 
Posts: 206
Joined: Sat Apr 19, 2008 10:28 pm
Location: Madrid, España

Re: Linux y Wine, problema al cerrar ventanas

Postby Antonio Linares » Thu Mar 11, 2010 10:27 pm

Alvaro,

Code: Select all  Expand view

METHOD End() CLASS TMdiChild

   ...

   if ValType( ::bPostEnd ) == 'B'
      Eval( ::bPostEnd )
   endif

return lEnd
 

Pruébalo por si te solucionase el problema
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41468
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Linux y Wine, problema al cerrar ventanas

Postby alvaro533 » Fri Mar 12, 2010 10:52 am

Si funciona, muchas gracias.

Alvaro
alvaro533
 
Posts: 206
Joined: Sat Apr 19, 2008 10:28 pm
Location: Madrid, España

Re: Linux y Wine, problema al cerrar ventanas

Postby Antonio Linares » Fri Mar 12, 2010 11:20 am

bien! :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41468
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Linux y Wine, problema al cerrar ventanas

Postby alvaro533 » Fri Mar 12, 2010 4:35 pm

Hay que añadir " .and. lEnd " por si acaso bValid devuelve falso.

Code: Select all  Expand view

if ValType( ::bPostEnd ) == 'B' .and. lEnd
      Eval( ::bPostEnd )
endif
 


Muchas gracias, ahora las ventanas cierran perfectamente en linux con wine.

Un saludo,

Alvaro
alvaro533
 
Posts: 206
Joined: Sat Apr 19, 2008 10:28 pm
Location: Madrid, España

Re: Linux y Wine, problema al cerrar ventanas

Postby Antonio Linares » Fri Mar 12, 2010 8:21 pm

Alvaro,

Incorporamos tu cambio para la próxima versión, gracias :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41468
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 153 guests