¿Se puede Salir de un dialogo y Retornar al mismo punto?
- JoseAlvarez
- Posts: 813
- Joined: Sun Nov 09, 2014 5:01 pm
- Been thanked: 1 time
¿Se puede Salir de un dialogo y Retornar al mismo punto?
Hola a todos amigos y colegas.
Tengo un dialogo donde se maneja el proceso de ventas y ahora el cliente me pide que se pueda salir de ese dialogo e ir a otras partes del sistema para luego retornar al mismo punto donde lo dejó
No se como hacerlo.
He logrado que funcione el boton de minimizar, pero no permite retornar al menu. Debo cerrar el dialogo obligatoriamente.
Uso pelles c como editor de recursos, mariadb + fivewin 17.01 + harbour
¿como se podria hacer funcionar, si es que hay alguna manera?
Gracias de antemano
Tengo un dialogo donde se maneja el proceso de ventas y ahora el cliente me pide que se pueda salir de ese dialogo e ir a otras partes del sistema para luego retornar al mismo punto donde lo dejó
No se como hacerlo.
He logrado que funcione el boton de minimizar, pero no permite retornar al menu. Debo cerrar el dialogo obligatoriamente.
Uso pelles c como editor de recursos, mariadb + fivewin 17.01 + harbour
¿como se podria hacer funcionar, si es que hay alguna manera?
Gracias de antemano
"Los errores en programación, siempre están entre la silla y el teclado..."
Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin
Carora, Estado Lara, Venezuela.
Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin
Carora, Estado Lara, Venezuela.
- Willi Quintana
- Posts: 1025
- Joined: Sun Oct 09, 2005 10:41 pm
- Location: Cusco - Perú
- Contact:
Re: ¿Se puede Salir de un dialogo y Retornar al mismo punto?
HOla amigo,,, hazlo en una ventana MDI con el dialogo incrustado en ella. donde el dialogo "VENTAS" debe ser NOCAPTION y STYLE CHILD
Code: Select all | Expand
DEFINE WINDOW oWndA MDICHILD FROM 0,0 to 2,2 OF oWnd BORDER NONE NOSYSMENU NOCAPTION TITLE "VENTAS"
DEFINE CURSOR oCursor HAND
DEFINE DIALOG oDlg RESOURCE "VENTAS" OF oWndA
REDEFINE BTNBMP oSalVe ;
RESOURCE "SALIR" LEFT ;
PROMPT "Salir" ;
ACTION ( oWndA:End() ) ;
ID 101 OF oDlg
ACTIVATE DIALOG oDlg CENTER NOWAIT ;
ON INIT (oDlg:Move( 0, 0 ), oWndA:bGotFocus := { || oDlg:SetFocus() } )
ACTIVATE WINDOW oWndA ;
ON INIT (oWndA:Move(0,0), oWndA:SetSize( oDlg:nWidth, oDlg:nHeight ) ) ;
ON RESIZE (oWndA:SetSize( oDlg:nWidth, oDlg:nHeight ) )
- JoseAlvarez
- Posts: 813
- Joined: Sun Nov 09, 2014 5:01 pm
- Been thanked: 1 time
Re: ¿Se puede Salir de un dialogo y Retornar al mismo punto?
Hola Willi,
gracias una vez mas por la ayuda.
Hice lo que me indicaste pero tengo el siguiente error:
Application
===========
Path and name: C:\Neuro32\Neuro32.EXE (32 bits)
Size: 9,236,992 bytes
Compiler version: xHarbour 1.2.3 Intl. (SimpLex) (Build 20170215)
FiveWin Version: FWHX 14.06
Windows version: 6.2, Build 9200
Time from start: 0 hours 0 mins 5 secs
Error occurred at: 13/10/2022, 08:40:42
Error description: Warning BASE/1004 Message not found: TWINDOW:OWNDCLIENT
Stack Calls
===========
Called from: source\rtl\tobject.prg => TWINDOW:ERROR( 0 )
Called from: source\rtl\tobject.prg => TWINDOW:MSGNOTFOUND( 0 )
Called from: source\rtl\tobject.prg => TWINDOW:OWNDCLIENT( 0 )
Called from: c:\fwh\source\classes\mdichild.prg => TMDICHILD:NEW( 150 )
Called from: .\prg\NewVentas.PRG => FNCT_REGISTRARVENTAS( 316 )
Called from: .\prg\Menus.PRG => (b)FBARRADEBOTONES( 529 )
Called from: c:\fwh\source\classes\btnbmp.prg => TBTNBMP:CLICK( 477 )
Called from: c:\fwh\source\classes\btnbmp.prg => TBTNBMP:LBUTTONUP( 668 )
Called from: c:\fwh\source\classes\control.prg => TCONTROL:HANDLEEVENT( 1723 )
Called from: c:\fwh\source\classes\btnbmp.prg => TBTNBMP:HANDLEEVENT( 1485 )
Called from: c:\fwh\source\classes\window.prg => _FWH( 3279 )
Called from: => WINRUN( 0 )
Called from: c:\fwh\source\classes\window.prg => TWINDOW:ACTIVATE( 1003 )
Called from: .\prg\Neuro32.PRG => NEURO32( 444 )
mi codigo:
Perdona mi ignorancia pero es primera vez que veo esto.
alguna idea de que estoy haciendo mal o que me esta faltando?
gracias una vez mas por la ayuda.
Hice lo que me indicaste pero tengo el siguiente error:
Application
===========
Path and name: C:\Neuro32\Neuro32.EXE (32 bits)
Size: 9,236,992 bytes
Compiler version: xHarbour 1.2.3 Intl. (SimpLex) (Build 20170215)
FiveWin Version: FWHX 14.06
Windows version: 6.2, Build 9200
Time from start: 0 hours 0 mins 5 secs
Error occurred at: 13/10/2022, 08:40:42
Error description: Warning BASE/1004 Message not found: TWINDOW:OWNDCLIENT
Stack Calls
===========
Called from: source\rtl\tobject.prg => TWINDOW:ERROR( 0 )
Called from: source\rtl\tobject.prg => TWINDOW:MSGNOTFOUND( 0 )
Called from: source\rtl\tobject.prg => TWINDOW:OWNDCLIENT( 0 )
Called from: c:\fwh\source\classes\mdichild.prg => TMDICHILD:NEW( 150 )
Called from: .\prg\NewVentas.PRG => FNCT_REGISTRARVENTAS( 316 )
Called from: .\prg\Menus.PRG => (b)FBARRADEBOTONES( 529 )
Called from: c:\fwh\source\classes\btnbmp.prg => TBTNBMP:CLICK( 477 )
Called from: c:\fwh\source\classes\btnbmp.prg => TBTNBMP:LBUTTONUP( 668 )
Called from: c:\fwh\source\classes\control.prg => TCONTROL:HANDLEEVENT( 1723 )
Called from: c:\fwh\source\classes\btnbmp.prg => TBTNBMP:HANDLEEVENT( 1485 )
Called from: c:\fwh\source\classes\window.prg => _FWH( 3279 )
Called from: => WINRUN( 0 )
Called from: c:\fwh\source\classes\window.prg => TWINDOW:ACTIVATE( 1003 )
Called from: .\prg\Neuro32.PRG => NEURO32( 444 )
mi codigo:
Code: Select all | Expand
DEFINE WINDOW oWndVenta MDICHILD FROM 0,0 to 2,2 OF _oWnd BORDER NONE NOSYSMENU NOCAPTION TITLE "VENTAS"
Define Dialog oDlgNewSell resource "oDlg_NewVenta" title 'Procesar Documentos de Ventas' of oWndVenta //Brush oBrush
oDlgNewSell:lHelpIcon:=.f.
oDlgNewSell:lTransparent:=.t.
oDlgNewSell:SetFont(_oFontDlgs)
...
...
...
Activate dialog oDlgNewSell nowait on Init ( (oDlgNewSell:Move( 0, 0 ), oWndVenta:bGotFocus := { || oDlgNewSell:SetFocus() } ),;
oCbxMonedas :Select(nPosiMonedas) ,;
Fnct_ResizeGets() ,;
oCbxDias:Hide() ,;
oDateImage:Hide() ,;
oSayText1:Hide() ,;
oGetRif:SetFocus() ,;
iif(_lFacturaVzla,oGetNumeroDoc:Disable(),),;
oBtn_Imprime:Hide() ,;
oGetNumeroDoc:Refresh())
Activate Window oWndVenta ;
ON INIT (oWndVenta:Move(0,0), oWndVenta:SetSize( oDlgNewSell:nWidth, oDlgNewSell:nHeight ) ) ;
ON RESIZE (oWndVenta:SetSize( oDlgNewSell:nWidth, oDlgNewSell:nHeight ) )
Perdona mi ignorancia pero es primera vez que veo esto.
alguna idea de que estoy haciendo mal o que me esta faltando?
"Los errores en programación, siempre están entre la silla y el teclado..."
Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin
Carora, Estado Lara, Venezuela.
Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin
Carora, Estado Lara, Venezuela.
- Willi Quintana
- Posts: 1025
- Joined: Sun Oct 09, 2005 10:41 pm
- Location: Cusco - Perú
- Contact:
Re: ¿Se puede Salir de un dialogo y Retornar al mismo punto?
HOla AMigo,,, aqui completo....
Code: Select all | Expand
# include "fivewin.ch"
static oWnd
//-------------------------------------------------------------------------------------------------------------
Function Main()
local oBar, oCursor, oVentas, oSalir
DEFINE WINDOW oWnd MDI TITLE "PRUEBA"
DEFINE BUTTONBAR oBar ;
SIZE 90, 45 ; // 70, 50
OF oWnd ;
CURSOR oCursor 3DLOOK 2015
oBar:bRClicked := {||Nil} // para no mover
DEFINE BUTTON oVentas OF oBar;
PROMPT "Ventas" ;
ACTION ( Ventas(oWnd) ) ;
DEFINE BUTTON oSalir OF oBar;
PROMPT "Salir" ;
ACTION ( oWnd:End() )
ACTIVATE WINDOW oWnd;
MAXIMIZED ON INIT(oApp:cPortIp := GetIp(oWnd), ;
oApp:nNumSer := VerSerieFact(oCn) , ;
IF(oApp:nTServ = 1, oCSunat:Hide(), oCSunat:Show()) )
Return(NIl)
//--------------------------------------------------------
Function Ventas(oWnd)
local oWndA, oCursor, oDlg, oSalir
DEFINE WINDOW oWndA MDICHILD FROM 0,0 to 2,2 OF oWnd BORDER NONE NOSYSMENU NOCAPTION TITLE "VENTAS"
DEFINE CURSOR oCursor HAND
DEFINE DIALOG oDlg RESOURCE "VENTAS" OF oWndA
REDEFINE BTNBMP oSalir ;
RESOURCE "SALIR" LEFT ;
PROMPT "Salir" ;
ACTION ( oWndA:End() ) ;
ID 101 OF oDlg
// aqui van los controles que desees XBROWSE, SAY, GET ect.
ACTIVATE DIALOG oDlg CENTER NOWAIT ;
ON INIT (oDlg:Move( 0, 0 ), oWndA:bGotFocus := { || oDlg:SetFocus() } )
ACTIVATE WINDOW oWndA ;
ON INIT (oWndA:Move(0,0), oWndA:SetSize( oDlg:nWidth, oDlg:nHeight ) ) ;
ON RESIZE (oWndA:SetSize( oDlg:nWidth, oDlg:nHeight ) )
Return(NIl)
- karinha
- Posts: 7956
- Joined: Tue Dec 20, 2005 7:36 pm
- Location: São Paulo - Brasil
- Been thanked: 4 times
- Contact:
Re: ¿Se puede Salir de un dialogo y Retornar al mismo punto?
Simples asi: use MDI.
Regards, saludos.
Code: Select all | Expand
// C:\ALVAREZ\ALVAREZ.PRG
#Include "FiveWin.ch"
STATIC oWnd
FUNCTION Main()
LOCAL oBar
DEFINE WINDOW oWnd MDI TITLE "Usando MDICHILD objects" COLOR "W/BG"
DEFINE BUTTONBAR oBar _3D OF oWnd
DEFINE BUTTON OF oBar ACTION( Alvarez() )
SET MESSAGE OF oWnd TO "Usando MDICHILD objects" NOINSET CLOCK DATE KEYBOARD
ACTIVATE WINDOW oWnd MAXIMIZED
RETURN NIL
FUNCTION Alvarez()
LOCAL oFont, oFnt, cTitle, oWndChild, oLbx, oDbf
cTitle := "PLENOIND: USANDO MDICHILD PARA JOSE ALVAREZ"
DEFINE FONT oFont NAME "Ms Sans Serif" SIZE 00, -14 BOLD
DEFINE FONT oFnt NAME "Ms Sans Serif" SIZE 00, -12 BOLD
CLOSE DATABASE
USE Customer NEW
DATABASE oDbf
DEFINE WINDOW oWndChild TITLE cTitle MDICHILD FROM 00, 00 TO 36.7, 127.9 ;
COLOR CLR_CYAN, CLR_WHITE BORDER NONE NOMAXIMIZE // NOZOOM
DEFINE BUTTONBAR OF oWndChild _3D SIZE 33, 33 _2007 // O DIALOGO
DEFINE BUTTON OF oWndChild:oBar GROUP NOBORDER ;
ACTION( oWndChild:End() ) FILENAME "c:\fwh1905\bitmaps\exit.bmp" ;
MESSAGE "Real compatibility of oWndChild" TOOLTIP "Exit"
@ 2, 0 LISTBOX oLbx FIELDS ON RIGHT CLICK MsgInfo( oLbx:cAlias ) ;
FONT oFont SIZE 400, 200
oWndChild:SetControl( oLbx )
@ 20, 0 TABS oWndChild:oBottom PROMPT "Action 1", "Action 2" ;
OF oWndChild
ACTIVATE WINDOW oWndChild CENTERED
oWndChild:ReSize()
oFnt:End()
oFont:End()
RETURN NIL
// FIN / END
Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
- JoseAlvarez
- Posts: 813
- Joined: Sun Nov 09, 2014 5:01 pm
- Been thanked: 1 time
Re: ¿Se puede Salir de un dialogo y Retornar al mismo punto?
karinha wrote:Simples asi: use MDI.Code: Select all | Expand
// C:\ALVAREZ\ALVAREZ.PRG
#Include "FiveWin.ch"
STATIC oWnd
FUNCTION Main()
LOCAL oBar
DEFINE WINDOW oWnd MDI TITLE "Usando MDICHILD objects" COLOR "W/BG"
DEFINE BUTTONBAR oBar _3D OF oWnd
DEFINE BUTTON OF oBar ACTION( Alvarez() )
SET MESSAGE OF oWnd TO "Usando MDICHILD objects" NOINSET CLOCK DATE KEYBOARD
ACTIVATE WINDOW oWnd MAXIMIZED
RETURN NIL
FUNCTION Alvarez()
LOCAL oFont, oFnt, cTitle, oWndChild, oLbx, oDbf
cTitle := "PLENOIND: USANDO MDICHILD PARA JOSE ALVAREZ"
DEFINE FONT oFont NAME "Ms Sans Serif" SIZE 00, -14 BOLD
DEFINE FONT oFnt NAME "Ms Sans Serif" SIZE 00, -12 BOLD
CLOSE DATABASE
USE Customer NEW
DATABASE oDbf
DEFINE WINDOW oWndChild TITLE cTitle MDICHILD FROM 00, 00 TO 36.7, 127.9 ;
COLOR CLR_CYAN, CLR_WHITE BORDER NONE NOMAXIMIZE // NOZOOM
DEFINE BUTTONBAR OF oWndChild _3D SIZE 33, 33 _2007 // O DIALOGO
DEFINE BUTTON OF oWndChild:oBar GROUP NOBORDER ;
ACTION( oWndChild:End() ) FILENAME "c:\fwh1905\bitmaps\exit.bmp" ;
MESSAGE "Real compatibility of oWndChild" TOOLTIP "Exit"
@ 2, 0 LISTBOX oLbx FIELDS ON RIGHT CLICK MsgInfo( oLbx:cAlias ) ;
FONT oFont SIZE 400, 200
oWndChild:SetControl( oLbx )
@ 20, 0 TABS oWndChild:oBottom PROMPT "Action 1", "Action 2" ;
OF oWndChild
ACTIVATE WINDOW oWndChild CENTERED
oWndChild:ReSize()
oFnt:End()
oFont:End()
RETURN NIL
// FIN / END
Regards, saludos.
Hola Joao, como estas amigo?
Por lo que veo en tu codigo, parece que estan incrustanto una ventana dentro de otra ventana, lo que necesito es un DIALOG dentro de una ventana, que se puede minimizar, maximizar, para salir a otras opciones del sistema y volver al dialogo al mismo punto donde estaba cuando se minimizo.
Willi, no me funciona aun... estoy intentando.
"Los errores en programación, siempre están entre la silla y el teclado..."
Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin
Carora, Estado Lara, Venezuela.
Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin
Carora, Estado Lara, Venezuela.
- karinha
- Posts: 7956
- Joined: Tue Dec 20, 2005 7:36 pm
- Location: São Paulo - Brasil
- Been thanked: 4 times
- Contact:
Re: ¿Se puede Salir de un dialogo y Retornar al mismo punto?
te basta poner un DIALOGO en la ventana hija con NOWAIT.
Regards, saludos.
Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
- JoseAlvarez
- Posts: 813
- Joined: Sun Nov 09, 2014 5:01 pm
- Been thanked: 1 time
Re: ¿Se puede Salir de un dialogo y Retornar al mismo punto?
karinha wrote:te basta poner un DIALOGO en la ventana hija con NOWAIT.
Regards, saludos.
Eso intento, siguiendo las indicaciones del colega willi quintana y las tuyas, pero no he logrado hacerlo funcionar.
Tendra algo que ver que el dialogo viene desde recursos? Hecho con pelles C
"Los errores en programación, siempre están entre la silla y el teclado..."
Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin
Carora, Estado Lara, Venezuela.
Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin
Carora, Estado Lara, Venezuela.
- cmsoft
- Posts: 1297
- Joined: Wed Nov 16, 2005 9:14 pm
- Location: Mercedes - Bs As. Argentina
- Been thanked: 2 times
Re: ¿Se puede Salir de un dialogo y Retornar al mismo punto?
Jose:
Yo lo hago de recursos
Y funciona bien
Y el RC
Espero te de una pista
Saludos
Yo lo hago de recursos
Y funciona bien
Code: Select all | Expand
// oApp:oWnd es una ventana MDI
DEFINE WINDOW oWnd1 MDICHILD TITLE "Jose" OF oApp:oWnd NOZOOM ICON oApp:oIco
DEFINE BUTTONBAR oBar SIZE 60,60 OF oWnd1 2010
DEFINE BUTTON RESOURCE "SALE" OF oBar;
TOOLTIP "Cerrar Ventana" ;
ACTION oWnd1:End();
PROMPT "Cerrar" TOP
oWnd1:bGotFocus := { || oDlg:SetFocus}
oWnd1:bResized := { || Incrusta( oWnd1, oDlg, .t.) }
DEFINE DIALOG oDlg RESOURCE "ABMS" OF oWnd1
REDEFINE XBROWSE oBrw DATASOURCE oQry;
COLUMNS "Codigo","Nombre";
HEADERS "Codigo","Nombre";
SIZES 50,350;
ID 111 OF oDlg AUTOSORT
REDEFINE SAY oBrw:oSeek PROMPT "" ID 113 OF oDlg
ACTIVATE DIALOG oDlg CENTER NOWAIT ON INIT oDlg:Move(0,0) VALID(oWnd1:End())
ACTIVATE WINDOW oWnd1 ON INIT Incrusta( oWnd1, oDlg, .T.) VALID(cerrar())
//
******************************************************************************
// Funcion : Incrusta
// Proposito : Poner justo justo un dialogo en una ventana
// Parametros: oWnd: Ventana donde se quiere poner el dialogo
// oDlg: Dialogo que se quiere inscrustar
// lCentra: Si lo quiere centrado o no
FUNCTION Incrusta( oWnd, oDlg, lCentra)
STATIC lActivo := .F.
LOCAL aRect, nPosY, nPosX, nPosXX, oIco
DEFINE ICON oIco RESOURCE "socie"
** DEFAULT lCentra := .F.
IF IsIconic(oWnd:hWnd)
RETURN .T.
ENDIF
IF !(lActivo)
lActivo = .T.
// Muevo dialogo a 0,0 para que quede bien incrustado...
oDlg:Move(0,0)
// Primero Seteo Como si Windows Fuera Estandar...
oWnd:SetSize(oDlg:nWidth+8, oDlg:nHeight+27)
// Calculo diferencia !
aRect := GetClientRect(oWnd:hWnd)
nPosY := ABS(ABS(aRect[3]-aRect[1])-ABS(oWnd:nTop-oWnd:nBottom))
nPosX := ABS(ABS(aRect[4]-aRect[2])-ABS(oWnd:nRight-oWnd:nLeft))
nPosXX := INT(ABS(ABS(oWnd:nRight-oWnd:nLeft) - ;
ABS(oApp:oWnd:nRight-oApp:oWnd:nLeft)) / 2)
// Ahora la pongo JUSTA, JUSTA...
oWnd:SetSize(oDlg:nWidth+nPosX,oDlg:nHeight+nPosY)
oWnd:Move(oApp:oWnd:nTop+5,nPosXX)
lActivo := .F.
oWnd:SetIcon(oIco)
oWnd:Refresh()
oApp:oWnd:oWndClient:Refresh()
ENDIF
RETURN .T.
Y el RC
Code: Select all | Expand
ABMS DIALOG DISCARDABLE 15, 19, 551, 309
STYLE WS_CHILD
FONT 8, "MS Sans Serif"
{
CONTROL "", 111, "TXBROWSE", WS_TABSTOP|0x00b000a1, 4, 44, 540, 240
CONTROL "Buscar=>:", -1, "Static", SS_RIGHT|WS_GROUP, 8, 292, 56, 8
CONTROL "", 113, "Static", WS_GROUP, 68, 292, 476, 8
}
Espero te de una pista
Saludos
- JoseAlvarez
- Posts: 813
- Joined: Sun Nov 09, 2014 5:01 pm
- Been thanked: 1 time
Re: ¿Se puede Salir de un dialogo y Retornar al mismo punto?
cmsoft wrote:Jose:
Yo lo hago de recursos
Y funciona bienCode: Select all | Expand
// oApp:oWnd es una ventana MDI
DEFINE WINDOW oWnd1 MDICHILD TITLE "Jose" OF oApp:oWnd NOZOOM ICON oApp:oIco
DEFINE BUTTONBAR oBar SIZE 60,60 OF oWnd1 2010
DEFINE BUTTON RESOURCE "SALE" OF oBar;
TOOLTIP "Cerrar Ventana" ;
ACTION oWnd1:End();
PROMPT "Cerrar" TOP
oWnd1:bGotFocus := { || oDlg:SetFocus}
oWnd1:bResized := { || Incrusta( oWnd1, oDlg, .t.) }
DEFINE DIALOG oDlg RESOURCE "ABMS" OF oWnd1
REDEFINE XBROWSE oBrw DATASOURCE oQry;
COLUMNS "Codigo","Nombre";
HEADERS "Codigo","Nombre";
SIZES 50,350;
ID 111 OF oDlg AUTOSORT
REDEFINE SAY oBrw:oSeek PROMPT "" ID 113 OF oDlg
ACTIVATE DIALOG oDlg CENTER NOWAIT ON INIT oDlg:Move(0,0) VALID(oWnd1:End())
ACTIVATE WINDOW oWnd1 ON INIT Incrusta( oWnd1, oDlg, .T.) VALID(cerrar())
//
******************************************************************************
// Funcion : Incrusta
// Proposito : Poner justo justo un dialogo en una ventana
// Parametros: oWnd: Ventana donde se quiere poner el dialogo
// oDlg: Dialogo que se quiere inscrustar
// lCentra: Si lo quiere centrado o no
FUNCTION Incrusta( oWnd, oDlg, lCentra)
STATIC lActivo := .F.
LOCAL aRect, nPosY, nPosX, nPosXX, oIco
DEFINE ICON oIco RESOURCE "socie"
** DEFAULT lCentra := .F.
IF IsIconic(oWnd:hWnd)
RETURN .T.
ENDIF
IF !(lActivo)
lActivo = .T.
// Muevo dialogo a 0,0 para que quede bien incrustado...
oDlg:Move(0,0)
// Primero Seteo Como si Windows Fuera Estandar...
oWnd:SetSize(oDlg:nWidth+8, oDlg:nHeight+27)
// Calculo diferencia !
aRect := GetClientRect(oWnd:hWnd)
nPosY := ABS(ABS(aRect[3]-aRect[1])-ABS(oWnd:nTop-oWnd:nBottom))
nPosX := ABS(ABS(aRect[4]-aRect[2])-ABS(oWnd:nRight-oWnd:nLeft))
nPosXX := INT(ABS(ABS(oWnd:nRight-oWnd:nLeft) - ;
ABS(oApp:oWnd:nRight-oApp:oWnd:nLeft)) / 2)
// Ahora la pongo JUSTA, JUSTA...
oWnd:SetSize(oDlg:nWidth+nPosX,oDlg:nHeight+nPosY)
oWnd:Move(oApp:oWnd:nTop+5,nPosXX)
lActivo := .F.
oWnd:SetIcon(oIco)
oWnd:Refresh()
oApp:oWnd:oWndClient:Refresh()
ENDIF
RETURN .T.
Y el RCCode: Select all | Expand
ABMS DIALOG DISCARDABLE 15, 19, 551, 309
STYLE WS_CHILD
FONT 8, "MS Sans Serif"
{
CONTROL "", 111, "TXBROWSE", WS_TABSTOP|0x00b000a1, 4, 44, 540, 240
CONTROL "Buscar=>:", -1, "Static", SS_RIGHT|WS_GROUP, 8, 292, 56, 8
CONTROL "", 113, "Static", WS_GROUP, 68, 292, 476, 8
}
Espero te de una pista
Saludos
¡ Estimado amigo César! ¿cómo estás?
Gracias por tu ayuda... con tu codigo y un par de retoques logré hacer lo que necesitaba. Excelente.
Ahora bien... para todos los amigos del foro solicito su ayuda para solucionar tres detalles que me quedan por corregir:
1. Se ve un parpadero bastente feo al momento de crearse la ventana y el inscrustado del dialogo dentro. Puedes verlo aca:
http://www.datanet.space/fw/v01.mp4
2. Al quedar el dialogo dentro de la ventana, se ve incompleto por causa de la Barra de botones o buttonbar. Buscando en el foro consegui la manera de ocultarla y mostrarla al entrar o salir al modulo, hasta alli perfecto, pero el detalle está en que necesito que se oculte o muestre tambien al minimizar o maximizar la ventana. Lo muestro aca:
http://www.datanet.space/fw/v02.mp4
3. y Ultimo. En mi ventana principal de sistema coloco un fondo el cual el cliente puede cambiar a gusto. Al convertir la ventana en MDI no se muestra la imagen, aqui si no tengo idea del por que.
http://www.datanet.space/fw/V03.mp4
Se agradece la ayuda que puedan prestar !!
Gracias !!
"Los errores en programación, siempre están entre la silla y el teclado..."
Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin
Carora, Estado Lara, Venezuela.
Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin
Carora, Estado Lara, Venezuela.
- cmsoft
- Posts: 1297
- Joined: Wed Nov 16, 2005 9:14 pm
- Location: Mercedes - Bs As. Argentina
- Been thanked: 2 times
Re: ¿Se puede Salir de un dialogo y Retornar al mismo punto?
Jose
Punto 1: Es por el move y el refresh y el center
No se me ocurre como solucionarlo.
Punto 2:
Puedes hacer que cada vez que se minimize muestre la barra
el punto 3 (la imagen de fondo)
Prueba asi:
Punto 1: Es por el move y el refresh y el center
No se me ocurre como solucionarlo.
Punto 2:
Puedes hacer que cada vez que se minimize muestre la barra
Code: Select all | Expand
oWnd:bResized := {if(oWnd:IsIconic(),oBar:Show(),nil) }
el punto 3 (la imagen de fondo)
Prueba asi:
Code: Select all | Expand
_oWnd:bPainted = { | hDC | PonerFondo( hDC, _oWnd , _oJpgMain ) }
_oWnd:bResized = { | hDC | PonerFondo( hDC, _oWnd , _oJpgMain ) }
*************************************************
** Poner una imagen de fondo
*************************************************
FUNCTION PorerFondo( hDC, oWnd, oBmp )
local nWidth := oWnd:nWidth(), nHeight := oWnd:nHeight()
local nRow := 0, nCol := 0, n
local nBmpWidth := oBmp:nWidth(), nBmpHeight := oBmp:nHeight()
if oBmp:hBitmap == 0
return nil
endif
nCol := nWidth /2 - nBmpWidth /2
nRow := nHeight /2 - nBmpHeight /2
nRow = 0
PalBmpDraw( hDC, nRow, nCol, oBmp:hBitmap )
return nil
- FranciscoA
- Posts: 2164
- Joined: Fri Jul 18, 2008 1:24 am
- Location: Chinandega, Nicaragua, C.A.
Re: ¿Se puede Salir de un dialogo y Retornar al mismo punto?
Al convertir la ventana en MDI no se muestra la imagen, aqui si no tengo idea del por que.
Sobre el punto 1: Hace tiempo también hice esa consulta.
Sobre el punto 3, lo hago asi: (FW1204)
Code: Select all | Expand
//-----------------------------------------//
FUNCTION PongaBmp( hDC, oBmp, oWnd )
PalBmpDraw( hDC, 0, 0,oBmp:hBitmap,, oWnd:oWndClient:nWidth, oWnd:oWndClient:nHeight,, .t.)
return nil
Saludos.
Francisco J. Alegría P.
Chinandega, Nicaragua.
Fwxh-MySql-TMySql
Chinandega, Nicaragua.
Fwxh-MySql-TMySql
- JoseAlvarez
- Posts: 813
- Joined: Sun Nov 09, 2014 5:01 pm
- Been thanked: 1 time
Re: ¿Se puede Salir de un dialogo y Retornar al mismo punto?
FranciscoA wrote:Al convertir la ventana en MDI no se muestra la imagen, aqui si no tengo idea del por que.
Sobre el punto 1: Hace tiempo también hice esa consulta.
Sobre el punto 3, lo hago asi: (FW1204)Code: Select all | Expand
//-----------------------------------------//
FUNCTION PongaBmp( hDC, oBmp, oWnd )
PalBmpDraw( hDC, 0, 0,oBmp:hBitmap,, oWnd:oWndClient:nWidth, oWnd:oWndClient:nHeight,, .t.)
return nil
Saludos.
Francisco, muy bien, con esto solucione el tema de la imagen de fondo en la ventana.
Cesar, no logre solucionar lo referente a que se esconda o se muestre la barra de menu de la venta principal cuando la ventana hija cambia de tamaño. Logre hacerlo a medias pero aun le llego. Sigo Buscando la manera de que funcione.
Gracias a Todos por la ayuda, agradecido.
"Los errores en programación, siempre están entre la silla y el teclado..."
Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin
Carora, Estado Lara, Venezuela.
Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin
Carora, Estado Lara, Venezuela.