Minimizar varios formularios a la vez

Minimizar varios formularios a la vez

Postby Compuin » Wed Jul 24, 2019 8:35 am

Hola foro,

Estoy manejando 2 formularios o ventanas. Una tiene el MAIN del programa y el otro es llamado en forma NO MODAL.

Como podria hacer para que cuando el formulario que contiene el MAIN se minimize pueda minimizar los otros formularios abiertos. LO que quiero hacer es algo parecido a lo que se hace cuado el formulario es MDI pero sin utlilizarlos como tal

Atento a sus comentarios
FWH 20.12
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
Compuin
 
Posts: 1214
Joined: Tue Dec 28, 2010 1:29 pm
Location: Quebec, Canada

Re: Minimizar varios formularios a la vez

Postby karinha » Wed Jul 24, 2019 12:01 pm

Podrias poner una imagen para mejor comprender?

Creo que la mejor forma sea usando MDICHILD tipo asi:

Image

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

Re: Minimizar varios formularios a la vez

Postby karinha » Wed Jul 24, 2019 12:02 pm

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

Re: Minimizar varios formularios a la vez

Postby Compuin » Wed Jul 24, 2019 12:02 pm

karinha wrote:Podrias poner una imagen para mejor comprender?

Creo que la mejor forma sea usando MDICHILD tipo asi:

Image

saludos.


Hola Joao,

Quiero hacer exactamente lo que hace MDI / MDICHILD entre 2 ventanas pero sin usar MDI
FWH 20.12
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
Compuin
 
Posts: 1214
Joined: Tue Dec 28, 2010 1:29 pm
Location: Quebec, Canada

Re: Minimizar varios formularios a la vez

Postby cnavarro » Wed Jul 24, 2019 12:15 pm

Mira a ver si te ayuda a implementarlo

viewtopic.php?f=3&t=36244&start=0&hilit=dialog+mdichild
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6552
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Minimizar varios formularios a la vez

Postby Compuin » Wed Jul 24, 2019 12:19 pm

cnavarro wrote:Mira a ver si te ayuda a implementarlo

viewtopic.php?f=3&t=36244&start=0&hilit=dialog+mdichild


Gracias maestro, funciona parcialmente ya que necesito:

- Que no sea Modal
- Que tenga boton de minimizar

Es posible incorporar esto?
FWH 20.12
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
Compuin
 
Posts: 1214
Joined: Tue Dec 28, 2010 1:29 pm
Location: Quebec, Canada

Re: Minimizar varios formularios a la vez

Postby cnavarro » Wed Jul 24, 2019 12:38 pm

No Modal es, si no no se prodría hacer
Pero, lo has probado?
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6552
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Minimizar varios formularios a la vez

Postby Compuin » Wed Jul 24, 2019 12:41 pm

cnavarro wrote:No Modal es, si no no se prodría hacer
Pero, lo has probado?


No modal pero me deja siempre el dialogo visible la idea es que lo compagine entre dialogos y al minimizar que se vaya a la barra de tareas

use NOWAIT y no me dio ese resultado
FWH 20.12
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
Compuin
 
Posts: 1214
Joined: Tue Dec 28, 2010 1:29 pm
Location: Quebec, Canada

Re: Minimizar varios formularios a la vez

Postby nageswaragunupudi » Wed Jul 24, 2019 12:56 pm

Add this code to the main window, before activating it.
Code: Select all  Expand view  RUN
  oWnd:bResized  := <|nType|
      local aWnd  := GetAllWin()
      if nType == 1
         AEval( aWnd, { |o| If( o:ClassName == "TWINDOW" .and. o:hWnd != oWnd:hWnd, ;
                            o:Iconize(), nil ) } )
      endif
      return nil
      >
 
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
 
Posts: 10690
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Re: Minimizar varios formularios a la vez

Postby Compuin » Wed Jul 24, 2019 1:04 pm

nageswaragunupudi wrote:Add this code to the main window, before activating it.
Code: Select all  Expand view  RUN
  oWnd:bResized  := <|nType|
      local aWnd  := GetAllWin()
      if nType == 1
         AEval( aWnd, { |o| If( o:ClassName == "TWINDOW" .and. o:hWnd != oWnd:hWnd, ;
                            o:Iconize(), nil ) } )
      endif
      return nil
      >
 


Hello Mr Rao, sorry I couldn't gei it

Code: Select all  Expand view  RUN
#include "fivewin.ch"

#define AS_DIALOG

function Main()

   local oWnd, oBar, oMenu

   SetGetColorFocus()

   DEFINE WINDOW oWnd MDI TITLE "DIALOG IN WINDOW"
   DEFINE BUTTONBAR oBar OF oWnd SIZE 100,32 2007

   DEFINE BUTTON OF oBar PROMPT "DIALOG"     CENTER ACTION CreateDialog( AS_DIALOG )

   ACTIVATE WINDOW oWnd

return nil


static function CreateDialog( nAs )

   local oDlg

   DEFINE DIALOG oDlg TITLE "DIALOGO" ;
   STYLE nOr( WS_POPUP, WS_VISIBLE, WS_CAPTION, WS_SYSMENU, WS_THICKFRAME,;
                               WS_MINIMIZEBOX )


   ACTIVATE DIALOG oDlg CENTERED NOWAIT

return oDlg
FWH 20.12
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
Compuin
 
Posts: 1214
Joined: Tue Dec 28, 2010 1:29 pm
Location: Quebec, Canada

Re: Minimizar varios formularios a la vez

Postby nageswaragunupudi » Wed Jul 24, 2019 1:21 pm

Non modal resizable dialogs are always minimized when the main window is minimized.
You do not have to write any special code to do that.
Test this program:
Code: Select all  Expand view  RUN
#include "fivewin.ch"

function TestMin()

   local oWnd, oBar

   DEFINE WINDOW oWnd
   DEFINE BUTTONBAR oBar OF oWnd SIZE 100,32 2007
   DEFINE BUTTON OF oBar PROMPT "Dialog" ACTION OpenDlg()

   oWnd:nWidth    := 800
   oWnd:nHeight   := 600

   ACTIVATE WINDOW oWnd CENTERED

return nil

function OpenDlg()

   local oDlg

   DEFINE DIALOG oDlg RESIZABLE
   ACTIVATE DIALOG oDlg CENTERED NOMODAL

return nil
 

If the main window is minimized, the non-modal dialog also is minimized.

Instead of writing this long:
Code: Select all  Expand view  RUN
  DEFINE DIALOG oDlg TITLE "DIALOG" ;
   STYLE nOr ( WS_POPUP, WS_VISIBLE, WS_CAPTION, WS_SYSMENU, WS_THICKFRAME ;;
                               WS_MINIMIZEBOX )
 

you can simply write
Code: Select all  Expand view  RUN

DEFINE DIALOG oDlg TITLE "DIALOG" RESIZABLE
 
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
 
Posts: 10690
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Re: Minimizar varios formularios a la vez

Postby Compuin » Wed Jul 24, 2019 1:27 pm

nageswaragunupudi wrote:Non modal resizable dialogs are always minimized when the main window is minimized.
You do not have to write any special code to do that.
Test this program:
Code: Select all  Expand view  RUN
#include "fivewin.ch"

function TestMin()

   local oWnd, oBar

   DEFINE WINDOW oWnd
   DEFINE BUTTONBAR oBar OF oWnd SIZE 100,32 2007
   DEFINE BUTTON OF oBar PROMPT "Dialog" ACTION OpenDlg()

   oWnd:nWidth    := 800
   oWnd:nHeight   := 600

   ACTIVATE WINDOW oWnd CENTERED

return nil

function OpenDlg()

   local oDlg

   DEFINE DIALOG oDlg RESIZABLE
   ACTIVATE DIALOG oDlg CENTERED NOMODAL

return nil
 

If the main window is minimized, the non-modal dialog also is minimized.


Mr Rao,

Setting the dialog as NOMODAL works as I want. The only issue is when I minimize them, I can not find them on the taskbar

How could I solve this???
FWH 20.12
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
Compuin
 
Posts: 1214
Joined: Tue Dec 28, 2010 1:29 pm
Location: Quebec, Canada

Re: Minimizar varios formularios a la vez

Postby nageswaragunupudi » Wed Jul 24, 2019 1:35 pm

That is Windows' behavior.
But when the main window is restored, the non-modal dialogs are also restored.
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
 
Posts: 10690
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Re: Minimizar varios formularios a la vez

Postby Compuin » Wed Jul 24, 2019 1:37 pm

nageswaragunupudi wrote:That is Windows' behavior.
But when the main window is restored, the non-modal dialogs are also restored.


Yes, thanks a lot
FWH 20.12
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
Compuin
 
Posts: 1214
Joined: Tue Dec 28, 2010 1:29 pm
Location: Quebec, Canada


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: D.Fernandez, Google [Bot] and 20 guests