Problema con Refreso de Pantalla

Problema con Refreso de Pantalla

Postby JoseLuis » Mon Nov 17, 2008 1:38 pm

Hola amigos

Tengo el siguiente codigo:
Code: Select all  Expand view
  DEFINE BRUSH oBrush1 COLOR RGB(242,247,252)
  DEFINE BRUSH oBrush2 COLOR RGB(247,227,131)
  DEFINE BRUSH oBrush3 COLOR RGB(215,245,183)
  DEFINE WINDOW Publicas:oWnd TITLE "Enlace Facturacion" MDI;
  ICON oico
  DEFINE OUTLOOK2003 oOutLook2003 OF Publicas:oWnd
     oOutLook2003:aDialogs[ 1 ]:oBrush:=oBrush1
     oOutLook2003:aDialogs[ 2 ]:oBrush:=oBrush2
     oOutLook2003:aDialogs[ 3 ]:oBrush:=oBrush3
     Publicas:oWnd:oLeft = nil
     Publicas:oWnd:bPainted := {|hDC|gradpaint( hDC)}
     Publicas:oWnd:SetFont( oFnt )
   
   @ 10,  15 BTNBMP RESOURCE "Facturas" SIZE 80,22 LEFT PROMPT " Facturas " OF oOutLook2003:aDialogs[ 1 ]  ACTION contafac( oOutLook2003,oDlg,oSplit ) MESSAGE "Contabilizar Facturas"
   @ 50,  15 BTNBMP RESOURCE "Titulos"  SIZE 80,22 LEFT PROMPT " Nombres "  OF oOutLook2003:aDialogs[ 1 ]  ACTION pontit  ( oOutLook2003,oDlg,oSplit ) MESSAGE "Poner Titulos a las Cuentas"
   @ 90,  15 BTNBMP RESOURCE "Remesas"  SIZE 80,22 LEFT PROMPT " Remesas "  OF oOutLook2003:aDialogs[ 1 ]  ACTION pagofact( oOutLook2003,oDlg,oSplit ) MESSAGE "Remesass Bancarias"
   @ 130, 15 BTNBMP RESOURCE "Dinero"   SIZE 80,22 LEFT PROMPT " Cobros "   OF oOutLook2003:aDialogs[ 1 ]  ACTION cobromet( oOutLook2003,oDlg,oSplit ) MESSAGE "Contados"
   @ 10,  15 BTNBMP RESOURCE "Facturas" SIZE 80,22 LEFT PROMPT " Facturas " OF oOutLook2003:aDialogs[ 2 ]  ACTION contafac( oOutLook2003,oDlg,oSplit ) MESSAGE "Contabilizar Facturas"       
   @ 50,  15 BTNBMP RESOURCE "Titulos"  SIZE 80,22 LEFT PROMPT " Nombres "  OF oOutLook2003:aDialogs[ 2 ]  ACTION pontit  ( oOutLook2003,oDlg,oSplit ) MESSAGE "Poner Titulos a las Cuentas"
   @ 90,  15 BTNBMP RESOURCE "Remesas"  SIZE 80,22 LEFT PROMPT " Remesas "  OF oOutLook2003:aDialogs[ 2 ]  ACTION pagofact( oOutLook2003,oDlg,oSplit ) MESSAGE "Remesass Bancarias"         
   @ 130, 15 BTNBMP RESOURCE "Dinero"   SIZE 80,22 LEFT PROMPT " Cobros "   OF oOutLook2003:aDialogs[ 2 ]  ACTION cobromet( oOutLook2003,oDlg,oSplit ) MESSAGE "Contados"                   
   @ 10,  15 BTNBMP RESOURCE "Facturas" SIZE 80,22 LEFT PROMPT " Facturas " OF oOutLook2003:aDialogs[ 3 ]  ACTION contafac( oOutLook2003,oDlg,oSplit ) MESSAGE "Contabilizar Facturas"     
   @ 50,  15 BTNBMP RESOURCE "Titulos"  SIZE 80,22 LEFT PROMPT " Nombres "  OF oOutLook2003:aDialogs[ 3 ]  ACTION pontit  ( oOutLook2003,oDlg,oSplit ) MESSAGE "Poner Titulos a las Cuentas"
   @ 90,  15 BTNBMP RESOURCE "Remesas"  SIZE 80,22 LEFT PROMPT " Remesas "  OF oOutLook2003:aDialogs[ 3 ]  ACTION pagofact( oOutLook2003,oDlg,oSplit ) MESSAGE "Remesass Bancarias"         
   @ 130, 15 BTNBMP RESOURCE "Dinero"   SIZE 80,22 LEFT PROMPT " Cobros "   OF oOutLook2003:aDialogs[ 3 ]  ACTION cobromet( oOutLook2003,oDlg,oSplit ) MESSAGE "Contados"                   
   @ 170, 15 BTNBMP RESOURCE "Fatcon"   SIZE 80,22 LEFT PROMPT " Fact.Cont " OF oOutLook2003:aDialogs[ 3 ] ACTION contados( oOutLook2003,oDlg,oSplit ) MESSAGE "Facturar Contados"

   #ifndef __CLIPPER__
      DEFINE STATUSBAR oStatusBar PROMPT "  Enlace Facturacion  " OF Publicas:oWnd
   #else   
      DEFINE MESSAGE oStatusBar PROMPT "  Enlace Facturacion " OF Publicas:oWnd
   #endif   

   SetParent( oOutLook2003:hWnd, Publicas:oWnd:hWnd )
   
   Publicas:oWnd:oClient = nil
   DEFINE DIALOG oDlg OF Publicas:oWnd ;
      STYLE nOR( WS_CHILD, WS_VISIBLE ) ;
   
   @ 0, 191 SPLITTER oSplit ;
      VERTICAL _3DLOOK ;
      PREVIOUS CONTROLS oOutLook2003 ;
      HINDS CONTROLS oDlg ;
      SIZE 4, Publicas:oWnd:nHeight - 70 PIXEL ;
      OF Publicas:oWnd
   ACTIVATE DIALOG oDlg NOMODAL
   SetParent( oSplit:hWnd, Publicas:oWnd:hWnd )
   BtnBar(oOutlook2003,oDlg,oSplit)
   ACTIVATE WINDOW Publicas:oWnd ;
      maximized;
      ON INIT (   oDlg:Move( 0, oSplit:nRight, Publicas:oWnd:nWidth, Publicas:oWnd:nHeight, .f. ), ;
                  Publicas:oWnd:bResized := {|| oSplit:AdjClient(), oDlg:SetSize( Publicas:oWnd:nWidth - oOutlook2003:nWidth - oSplit:nWidth - 8, oSplit:nHeight - 1, .t. ) }, ;
                  oDlg:refresh(.t.) ) ;
      VALID lExit := .T.

return nil

Que me hace mas o menos lo siguiente:
Image
Image

Ahora quiero presentar en la parte derecha del splitter un xbrowse, para lo cual he creado antes el dialogo oDlg,

Code: Select all  Expand view
SetParent( oDlg:hWnd, Publicas:oWnd:hWnd )
barra1(oDlg)
Publicas:cVenci1:=Date()
      cAlias:=Alias()
      dbSelectArea(cAlias)
      oBrw := TXBrowse():New( oDlg )
      oBrw:cAlias := "xdiario"
      oBrw:nMarqueeStyle       := MARQSTYLE_HIGHLCELL
      oBrw:nColDividerStyle    := LINESTYLE_BLACK
      oBrw:nRowDividerStyle    := LINESTYLE_BLACK
      oBrw:nTop    := oDlg:nTop
      oBrw:nBottom := oDlg:nheight()
      oBrw:nRight  := oDlg:nWidth()
      oBrw:lColDividerComplete := .f.
      oBrw:lFastEdit := .t.

      oCol := oBrw:AddCol()
      oCol:bStrData = { || xdiario->Asien }
      oCol:nEditType = 1
      oBrw:aCols[ 1 ]:nWidth  := 55
      oCol:cHeader := 'Asiento'
      oCol:bOnPostEdit = { | oCol, xVal, nKey | If( RecCount() == 0, DbAppend(),), If( nKey == VK_RETURN, ( xdiario->Asien := xVal, oBrw:Refresh() ),) }
.......... etc....







//-------------------------
function Barra1( oDlg )
  local oBar,hdc
  DEFINE BUTTONBAR oBar OF oDlg SIZE 50,46 2007
   oBar:bRClicked := { || .t. }
    DEFINE BUTTON OF oBar ;
      RESOURCE "Salir" TOP ;
      PROMPT "Salir" ;
      ACTION (Publicas:abierta:=0,CleanSlate(oDlg),oBar:end(),SetParent( oDlg,0 ));
      MESSAGE " Salir " ;
      TOOLTIP { "Salir", "Salir" }
  return oBar
//------------


Image
Image

Pero al cerrar el dialogo con la función Barra1., que he puesto anteriormente, no me repinta la ventana como estaba anteriormente, me queda asi:
Image
Image

Como puedo hacer que me vuelva a repintar ésta zona?

Saludos

Jose Luis
JoseLuis
 
Posts: 426
Joined: Thu Oct 19, 2006 12:28 pm
Location: Toledo

Postby joseluisysturiz » Mon Nov 17, 2008 4:41 pm

...
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

Postby JoseLuis » Mon Nov 17, 2008 5:35 pm

Pues eso...

El color....
Que si en la linea de salida, en lugar de Setparent(oDlg,0) , pongo oDlg:End(), pues si, al finalizar el diálogo (oDlg), me repinta la ventana Publicas:oWnd.

Pero en éste caso tengo otros problemas posteriores, y quiero que me repinte ésta ventana, sin finalizar el diálogo.

Saludos

Jose Luis
JoseLuis
 
Posts: 426
Joined: Thu Oct 19, 2006 12:28 pm
Location: Toledo

Postby JoseLuis » Mon Nov 17, 2008 7:35 pm

En el Setparent final, me faltaba":hwnd", es decir tiene que ser Setparent(oDlg:hwnd,0).

Pero ahora me ocurre lo siguiente:

Cuando se está ejecutando la aplicación, en la barra de tareas me aparece su icono normalmente:
Image
Image

Pero cuando regreso del xbrowse, y hago la operación que antes he mencionado, ahora me pinta sólo un trozo de la parte inferior, y en la barra de tareas me aparecen dos iconos de la misma aplicación:


Image
Image


Y pincho con el ratón en el que pone "Enlace c.." me aparece la ventana perfectamente pintada como yo quiero (Como estaba inicialmente).

Como se puede arreglar esto?

Saludos

Jose Luis
JoseLuis
 
Posts: 426
Joined: Thu Oct 19, 2006 12:28 pm
Location: Toledo


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 141 guests