REPINTAR UNA WINDOW

REPINTAR UNA WINDOW

Postby CARLOS ATUNCAR » Wed Jan 10, 2018 3:06 am

Tengo una duda como solucionar este problema tengo con una ventana principal como detallo mas abajo cuando abro otra ventana MDICHILD y al cerrarla la parte ocupada se pierda lo que estaba, si minimizo y maximizo se repinta nuevamente. Que solucion se puede aplicar . Gracias




DEFINE CURSOR oCursor HAND

DEFINE BRUSH oBrush FILE op:bmp+"paper.bmp"


DEFINE WINDOW oWind MDI TITLE op:ctitulo ;
ICON oIco MENU omenu BRUSH oBrush

BuildRibbonBar()


@130, 10 GROUP TO 250, 150 OF oWind PIXEL
@150, 40 SAY "VENTAS" FONT oFontSmall COLOR CLR_BLUE, CLR_WHITE SIZE 75, 35 OF oWind TRANSPARENT PIXEL
@180, 40 SAY oSayMando[1] PROMPT cSayMando[1] FONT oFontmed COLOR CLR_BLUE, CLR_WHITE SIZE 70, 35 OF oWind TRANSPARENT PIXEL

@130,160 GROUP TO 250, 300 OF oWind PIXEL
@150,190 SAY "COMPRAS" FONT oFontSmall COLOR CLR_BLUE, CLR_WHITE SIZE 85, 35 OF oWind TRANSPARENT PIXEL
@180,190 SAY oSayMando[2] PROMPT cSayMando[2] FONT oFontmed COLOR CLR_BLUE, CLR_WHITE SIZE 70, 35 OF oWind TRANSPARENT PIXEL

@130,310 GROUP TO 250, 450 OF oWind PIXEL
@150,340 SAY "GUIAS DE CARGA" FONT oFontPeque COLOR CLR_BLUE, CLR_WHITE SIZE 75, 35 OF oWind TRANSPARENT PIXEL
@180,340 SAY oSayMando[3] PROMPT cSayMando[3] FONT oFontmed COLOR CLR_BLUE, CLR_WHITE SIZE 70, 35 OF oWind TRANSPARENT PIXEL

@130,460 GROUP TO 250, 600 OF oWind PIXEL
@150,490 SAY "STOCK LOCAL " FONT oFontPeque COLOR CLR_BLUE, CLR_WHITE SIZE 75, 35 OF oWind TRANSPARENT PIXEL
@180,490 SAY oSayMando[4] PROMPT cSayMando[4] FONT oFontmed COLOR CLR_BLUE, CLR_WHITE SIZE 70, 35 OF oWind TRANSPARENT PIXEL

// Lista de Productos Stock
cMsg := "SELECT codigo,detalle,stock FROM mercaderia WHERE sucursal ="+ClipValue2Sql(op:empresa)
oQryStock := oServer:Query( cMsg )

// Lista de Stock

@250,10 XBROWSE oBrwStock OF oWind PIXEL ;
OBJECT oQryStock ;
FIELDS oQryStock:codigo,oQryStock:detalle,oQryStock:stock ;
HEADERS "Codigo","Descripcion","Stock" ;
SIZES {50,275,70}

For a:=1 To 3
oBrwStock:aCols[a]:nHeadStrAlign:= AL_CENTER
Next


WITH OBJECT oBrwStock
:l2007 := .F.
:lTransparent := .T.
:lDesign := .f.
:lRecordSelector := .F.
:lVScroll := .f.
:lHScroll := .f.
:lColChangeNotify := .t.
:lAllowColReGroup := .t.
:lColDividerComplete := .t.

:SetGroupHeader( 'STOCK DEL LOCAL', 1, 3, oFontx )

:oFont := oFont
:nBottom := 550
:nRight := 400
:nDataLines := 1
:nStretchCol := 1
:nRowHeight := 25 // * 1.5

:bClrStd := { || { CLR_BLACK, CLR_HGRAY }}
:bClrSelFocus := { || { CLR_WHITE, METRO_OLIVE } }
SetColor( CLR_WHITE, RGB( 0x33, 0x66, 0xCC ) )

:SetDolphin( oQryStock, .F. )

:aCols[1]:nWidth := 60
:aCols[1]:lAllowSizing := .f.

:nColDividerStyle := LINESTYLE_NOLINES
:nRowDividerStyle := LINESTYLE_LIGHTGRAY
:nMarqueeStyle := MARQSTYLE_HIGHLROW
:bClrSel := { || { CLR_BLACK, CLR_HGRAY } }


:CreateFromCode()
END
CARLOS ATUNCAR
 
Posts: 15
Joined: Thu Sep 17, 2015 11:40 pm

Re: REPINTAR UNA WINDOW

Postby Antonio Linares » Wed Jan 10, 2018 7:44 am

Carlos,

En un entorno MDI no está permitido crear controles hijos de la ventana principal.

Tienes que usar la ventana "fantasma" oWnd:oWndClient, así que en vez de hacer:

@130, 10 GROUP TO 250, 150 OF oWind PIXEL

tienes que hacer:

@130, 10 GROUP TO 250, 150 OF oWind:oWndClient PIXEL

El segundo problema que se presenta es que un entorno MDI "controla" a sus ventanas hijas, por lo que cuando
reorganices las ventanas del MDI comprobarás que esos controles hijos (que son ventanas también) se reorganizan, etc
y esto es algo que no deseas.

Aquí tienes un ejemplo de cómo tienes que hacer para que puedan coexistir controles y ventanas hijas MDI:
viewtopic.php?p=208508#p208508
regards, saludos

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

Re: REPINTAR UNA WINDOW

Postby Antonio Linares » Wed Jan 10, 2018 7:46 am

Muestra aquí una imagen de cómo se ve tu aplicación y te indicamos como programarla correctamente :-)
regards, saludos

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


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: ACC69, MauroArevalo and 8 guests