Problema con Refreso de Pantalla
![Post Post](./styles/prosilver/imageset/icon_post_target.gif)
Hola amigos
Tengo el siguiente codigo:
Que me hace mas o menos lo siguiente:
![Image](http://img379.imageshack.us/img379/6920/unodt8.jpg)
![Image](http://img379.imageshack.us/img379/unodt8.jpg/1/w409.png)
Ahora quiero presentar en la parte derecha del splitter un xbrowse, para lo cual he creado antes el dialogo oDlg,
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
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](http://img379.imageshack.us/img379/6920/unodt8.jpg)
![Image](http://img379.imageshack.us/img379/unodt8.jpg/1/w409.png)
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](http://img357.imageshack.us/img357/1665/dosrt1.jpg)
![Image](http://img357.imageshack.us/img357/dosrt1.jpg/1/w423.png)
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](http://img65.imageshack.us/img65/3882/tresje2.jpg)
![Image](http://img65.imageshack.us/img65/tresje2.jpg/1/w426.png)
Como puedo hacer que me vuelva a repintar ésta zona?
Saludos
Jose Luis