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