¿Se puede Salir de un dialogo y Retornar al mismo punto?

¿Se puede Salir de un dialogo y Retornar al mismo punto?

Postby JoseAlvarez » Thu Oct 13, 2022 1:06 am

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
"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.
User avatar
JoseAlvarez
 
Posts: 797
Joined: Sun Nov 09, 2014 5:01 pm

Re: ¿Se puede Salir de un dialogo y Retornar al mismo punto?

Postby Willi Quintana » Thu Oct 13, 2022 4:11 am

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

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


 
User avatar
Willi Quintana
 
Posts: 1020
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú

Re: ¿Se puede Salir de un dialogo y Retornar al mismo punto?

Postby JoseAlvarez » Thu Oct 13, 2022 12:53 pm

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:
Code: Select all  Expand view  RUN
    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.
User avatar
JoseAlvarez
 
Posts: 797
Joined: Sun Nov 09, 2014 5:01 pm

Re: ¿Se puede Salir de un dialogo y Retornar al mismo punto?

Postby Willi Quintana » Thu Oct 13, 2022 3:22 pm

HOla AMigo,,, aqui completo....
Code: Select all  Expand view  RUN

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


 
User avatar
Willi Quintana
 
Posts: 1020
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú

Re: ¿Se puede Salir de un dialogo y Retornar al mismo punto?

Postby karinha » Thu Oct 13, 2022 3:29 pm

Simples asi: use MDI.

Code: Select all  Expand view  RUN

// 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
User avatar
karinha
 
Posts: 7828
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: ¿Se puede Salir de un dialogo y Retornar al mismo punto?

Postby JoseAlvarez » Thu Oct 13, 2022 5:11 pm

karinha wrote:Simples asi: use MDI.

Code: Select all  Expand view  RUN

// 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.
User avatar
JoseAlvarez
 
Posts: 797
Joined: Sun Nov 09, 2014 5:01 pm

Re: ¿Se puede Salir de un dialogo y Retornar al mismo punto?

Postby karinha » Thu Oct 13, 2022 7:34 pm

te basta poner un DIALOGO en la ventana hija con NOWAIT.

Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7828
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: ¿Se puede Salir de un dialogo y Retornar al mismo punto?

Postby JoseAlvarez » Thu Oct 13, 2022 8:03 pm

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.
User avatar
JoseAlvarez
 
Posts: 797
Joined: Sun Nov 09, 2014 5:01 pm

Re: ¿Se puede Salir de un dialogo y Retornar al mismo punto?

Postby cmsoft » Thu Oct 13, 2022 8:18 pm

Jose:
Yo lo hago de recursos
Y funciona bien
Code: Select all  Expand view  RUN

// 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 view  RUN
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
User avatar
cmsoft
 
Posts: 1290
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: ¿Se puede Salir de un dialogo y Retornar al mismo punto?

Postby JoseAlvarez » Sat Oct 15, 2022 11:46 am

cmsoft wrote:Jose:
Yo lo hago de recursos
Y funciona bien
Code: Select all  Expand view  RUN

// 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 view  RUN
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.
User avatar
JoseAlvarez
 
Posts: 797
Joined: Sun Nov 09, 2014 5:01 pm

Re: ¿Se puede Salir de un dialogo y Retornar al mismo punto?

Postby cmsoft » Sat Oct 15, 2022 2:00 pm

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
Code: Select all  Expand view  RUN
oWnd:bResized := {if(oWnd:IsIconic(),oBar:Show(),nil)   }  


el punto 3 (la imagen de fondo)
Prueba asi:
Code: Select all  Expand view  RUN

_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
 
User avatar
cmsoft
 
Posts: 1290
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: ¿Se puede Salir de un dialogo y Retornar al mismo punto?

Postby FranciscoA » Sat Oct 15, 2022 2:49 pm

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 view  RUN
//-----------------------------------------//
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
User avatar
FranciscoA
 
Posts: 2159
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?

Postby JoseAlvarez » Wed Oct 19, 2022 7:35 pm

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 view  RUN
//-----------------------------------------//
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.
User avatar
JoseAlvarez
 
Posts: 797
Joined: Sun Nov 09, 2014 5:01 pm


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 49 guests