FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Problema con Refreso de Pantalla
Posts: 428
Joined: Thu Oct 19, 2006 12:28 PM
Problema con Refreso de Pantalla
Posted: Mon Nov 17, 2008 01:38 PM
Hola amigos

Tengo el siguiente codigo:
  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:



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

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
//------------





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:



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

Saludos

Jose Luis
--------------------------

Saludos



Jose Luis
Posts: 2064
Joined: Fri Jan 06, 2006 09:28 PM
Problema con Refreso de Pantalla
Posted: Mon Nov 17, 2008 04:41 PM

...

Dios no est谩 muerto...



Gracias a mi Dios ante todo!
Posts: 428
Joined: Thu Oct 19, 2006 12:28 PM
Problema con Refreso de Pantalla
Posted: Mon Nov 17, 2008 05: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

--------------------------

Saludos



Jose Luis
Posts: 428
Joined: Thu Oct 19, 2006 12:28 PM
Problema con Refreso de Pantalla
Posted: Mon Nov 17, 2008 07: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:



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:






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
--------------------------

Saludos



Jose Luis

Continue the discussion