FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour CLASS TMdiFolder ( a la atenci贸n de Leandro )
Posts: 199
Joined: Wed Jan 02, 2019 08:36 AM
CLASS TMdiFolder ( a la atenci贸n de Leandro )
Posted: Mon Jun 05, 2023 05:09 PM
Buenas tardes Leandro ( y buenas tardes a todos )




He convertido las funciones en una clase llamada TMdiChildFolder, que se apoya en otra TBtnBmpFolder.

Incluyo ahora los dos .prg de lo que se muestra en el video.
1) Se crea la base del programa. Ventana principal
2) Las tres opciones de menu. Ventana MDI, Ventana MDI con Icono, Ventana Mdi con icono, barra de herramientas..

La 煤nica diferencia sobre la programaci贸n en MDICHILD tradicional es que en vez de poner :

DEFINE WINDOW MDICHILD oMDI OF ....

tienes que poner

DEFINE WINDOW MDICHILDFOLDER oMDI OF ....

Tengo algunas ideas para a帽adir, como poner un boton [x] para cerrar una ventana al pasar el rat贸n por cada pesta帽a y que desaparezca al salir el rat贸n de la pesta帽a. [ LO EDITO ] Ya funciona, al pasar el rat贸n por la solapa de la ventana activa aparece el boton cerrar.
Probar abrir 100 ventanas, para ver la carga de memoria, etc.... [ LO EDITO : He abierto multiples ventanas. Al parecer a las 90 ventanas, se cae. Lo mirar茅 ]
Tambi茅n poner todas las imagenes en una DLL (a ver si alg煤n buen samaritano me puede guiar de la mano para hacerlo).

En fin, falta probarlo, logicamente y depurar c贸digo.
Me gustar铆a publicarlo, si os parece bi茅n, una vez lo prueben dos o tres de vosotros.

LOS PRG`s DEL VIDEO :

TestMdiFolder.prg
Code (fw): Select all Collapse
#include "Fivewin.ch"


STATIC oWnd


function Main()

聽 聽errorsys()
聽 聽SetHandleCount(80)
聽 聽SET DATE TO ITALIAN
聽 聽SET CENTURY ON
聽 聽SET EPOCH TO 2000
聽 聽SET DECIMALS TO 2
聽 聽SET DATE FORMAT "dd/mm/yyyy"

聽 聽DEFINE WINDOW oWnd PIXEL MDI STYLE nOR( WS_POPUP, WS_BORDER )

聽 聽ACTIVATE WINDOW oWnd ON INIT ( My_maximized(oWnd) , Menu(oWnd) ) ;
聽 聽 聽 VALID MsgNoYes("Desea cerrar el programa","Atenci贸n")


RETURN(NIL)


// ESTA FUNCION MAXIMIZA LA VENTANA PERO TENIENDO EN CUENTA DONDE ESTA LA BARRA DE WINDOWS
FUNCTION My_maximized(oWnd)

Local aCoors := GetCoors( FindWindow("Shell_TrayWnd","") )

聽 聽oWnd:Move(0,0,aCoors[4],aCoors[1],.t.)

RETURN(NIL)

Menu.prg
Code (fw): Select all Collapse
#include "Fivewin.ch"
#include "MdiChildFolder.ch"


//-----------------------------------------------------------------------------
FUNCTION MENU(oWndPrincipal)

LOCAL oWnd
local oBt1, oBt2, oBt3

DEFINE WINDOW MDICHILDFOLDER oWnd OF oWndPrincipal TITLE "Menu"

聽@100,80 BTNBMP oBt1 PROMPT "Abrir MDI Folder" of oWnd SIZE 200,100 ACTION NUEVAMDI(oWndPrincipal)
聽 聽oBt1:SetColor( CLR_WHITE, CLR_BLUE)
聽@200,80 btnbmp oBt2 PROMPT "Abrir MDI Folder con Icono" OF oWnd SIZE 200,100 ACTION NUEVAMDI_ICONO(oWndPrincipal)
聽 聽oBt2:SetColor( CLR_WHITE, CLR_RED)
聽@300,80 btnbmp oBt3 PROMPT "Abrir MDI Folder con ButtonBar" OF oWnd SIZE 200,100 ACTION NUEVAMDI_BAR(oWndPrincipal)
聽 聽oBt3:SetColor( CLR_WHITE, CLR_GREEN)

ACTIVATE WINDOW oWnd

return nil



FUNCTION NUEVAMDI(oWndPrincipal)

LOCAL oMDI, oFont, oSay
LOCAL oIco
LOCAL aBtn[5]


DEFINE FONT oFont NAME "Segoe UI Light" SIZE 0,-80 BOLD
DEFINE WINDOW MDICHILDFOLDER oMDI OF oWndPrincipal TITLE "MDI"

// PODEMOS COLOCAR NUESTROS CONTROLES A PARTIR DE LA FILA 40

聽 聽 聽 @43,005 BTNBMP aBtn[1] OF oMDI FILE "W11_CLOSE.bmp" SIZE 30,30 ACTION oMdi:End() NOBORDER
聽 聽 聽 聽 聽aBtn[1]:cToolTip="Cerrar ventana"
聽 聽 聽 @42,040 IMAGE FILE "SEPARADOR.JPG" SIZE 1,33 聽OF oMdi PIXEL NOBORDER

聽 聽 聽 @43,045 BTNBMP aBtn[2] FILE "W11_GO_FIRST.BMP" SIZE 30,30 OF oMDI UPDATE NOBORDER //ACTION GoToMenu(oBar22)
聽 聽 聽 聽 聽aBtn[2]:bAction := { || oMdi:GoToMenu() }
聽 聽 聽 聽 聽aBtn[2]:cToolTip="Solapa Men煤"
聽 聽 聽 聽 聽aBtn[2]:nClrPane := RGB(240,240,240)

聽 聽 聽 @43,075 BTNBMP aBtn[3] FILE "W11_SELECT.BMP" SIZE 30,30 OF oMDI UPDATE NOBORDER //ACTION MenuFolders(oWNDC)
聽 聽 聽 聽 聽aBtn[3]:bAction := { || oMdi:MenuFolders() }
聽 聽 聽 聽 聽aBtn[3]:cToolTip="Seleccionar ventana"
聽 聽 聽 聽 聽aBtn[3]:nClrPane := RGB(240,240,240)

聽 聽 聽 @43,105 BTNBMP aBtn[4] FILE "W11_MDI_LEFT.BMP" SIZE 30,30 OF oMDI UPDATE NOBORDER //ACTION MenuFolders(oWNDC)
聽 聽 聽 聽 聽aBtn[4]:bACTION := { || oMdi:Mover_Ventanas_no_visibles(-1) 聽}
聽 聽 聽 聽 聽aBtn[4]:cToolTip="Mover solapas a la izquierda"
聽 聽 聽 聽 聽aBtn[4]:nClrPane := RGB(240,240,240)

聽 聽 聽 @43,135 BTNBMP aBtn[5] FILE "W11_MDI_RIGHT.BMP" SIZE 30,30 OF oMDI UPDATE NOBORDER //ACTION MenuFolders(oWNDC)
聽 聽 聽 聽 聽aBtn[5]:bACTION := { || oMdi:Mover_Ventanas_no_visibles(1) 聽}
聽 聽 聽 聽 聽aBtn[5]:cToolTip="Mover solapas a la derecha"
聽 聽 聽 聽 聽aBtn[5]:nClrPane := RGB(240,240,240)

聽 聽 聽 @42,165 IMAGE FILE "SEPARADOR.JPG" SIZE 1,33 OF oMDI PIXEL NOBORDER



聽 聽 聽 @180,1 SAY oSay prompt "I'M "+oMdi:cCaption SIZE 1350,400 COLOR CLR_BLUE pixel FONT oFont CENTER


ACTIVATE WINDOW oMDI ON PAINT (oSay:nWidth:=oMdi:nWidth, oSay:Refresh() )

return nil

//-----------------------------------------------------------------------------
FUNCTION NUEVAMDI_ICONO(oWndPrincipal)

LOCAL oMDI, oFont, oSay
LOCAL oIco
LOCAL aBtn[5]



DEFINE FONT oFont NAME "Segoe UI Light" SIZE 0,-80 BOLD
DEFINE WINDOW MDICHILDFOLDER oMDI OF oWndPrincipal TITLE "Clientes" ICON "W11_CLIENTES.BMP"


// PODEMOS COLOCAR NUESTROS CONTROLES A PARTIR DE LA FILA 40

聽 聽 聽 @43,005 BTNBMP aBtn[1] OF oMDI FILE "W11_CLOSE.bmp" SIZE 30,30 ACTION oMdi:End() NOBORDER
聽 聽 聽 聽 聽aBtn[1]:cToolTip="Cerrar ventana"
聽 聽 聽 @42,040 IMAGE FILE "SEPARADOR.JPG" SIZE 1,33 聽OF oMdi PIXEL NOBORDER

聽 聽 聽 @43,045 BTNBMP aBtn[2] FILE "W11_GO_FIRST.BMP" SIZE 30,30 OF oMDI UPDATE NOBORDER //ACTION GoToMenu(oBar22)
聽 聽 聽 聽 聽aBtn[2]:bAction := { || oMdi:GoToMenu() }
聽 聽 聽 聽 聽aBtn[2]:cToolTip="Solapa Men煤"
聽 聽 聽 聽 聽aBtn[2]:nClrPane := RGB(240,240,240)

聽 聽 聽 @43,075 BTNBMP aBtn[3] FILE "W11_SELECT.BMP" SIZE 30,30 OF oMDI UPDATE NOBORDER //ACTION MenuFolders(oWNDC)
聽 聽 聽 聽 聽aBtn[3]:bAction := { || oMdi:MenuFolders() }
聽 聽 聽 聽 聽aBtn[3]:cToolTip="Seleccionar ventana"
聽 聽 聽 聽 聽aBtn[3]:nClrPane := RGB(240,240,240)

聽 聽 聽 @43,105 BTNBMP aBtn[4] FILE "W11_MDI_LEFT.BMP" SIZE 30,30 OF oMDI UPDATE NOBORDER //ACTION MenuFolders(oWNDC)
聽 聽 聽 聽 聽aBtn[4]:bACTION := { || oMdi:Mover_Ventanas_no_visibles(-1) 聽}
聽 聽 聽 聽 聽aBtn[4]:cToolTip="Mover solapas a la izquierda"
聽 聽 聽 聽 聽aBtn[4]:nClrPane := RGB(240,240,240)

聽 聽 聽 @43,135 BTNBMP aBtn[5] FILE "W11_MDI_RIGHT.BMP" SIZE 30,30 OF oMDI UPDATE NOBORDER //ACTION MenuFolders(oWNDC)
聽 聽 聽 聽 聽aBtn[5]:bACTION := { || oMdi:Mover_Ventanas_no_visibles(1) 聽}
聽 聽 聽 聽 聽aBtn[5]:cToolTip="Mover solapas a la derecha"
聽 聽 聽 聽 聽aBtn[5]:nClrPane := RGB(240,240,240)

聽 聽 聽 @42,165 IMAGE FILE "SEPARADOR.JPG" SIZE 1,33 OF oMDI PIXEL NOBORDER



聽 聽 聽 @180,1 SAY oSay prompt "I'M "+oMdi:cCaption+CRLF+" with Icon" SIZE 1350,400 COLOR CLR_BLUE pixel FONT oFont CENTER


ACTIVATE WINDOW oMDI ON PAINT (oSay:nWidth:=oMdi:nWidth, oSay:Refresh() )


return nil


//-----------------------------------------------------------------------------
FUNCTION NUEVAMDI_BAR(oWndPrincipal)

LOCAL oMDI, oFont, oSay
LOCAL oIco
LOCAL aBtn[5]
LOCAL oBar

DEFINE FONT oFont NAME "Segoe UI Light" SIZE 0,-80 BOLD
DEFINE WINDOW MDICHILDFOLDER oMDI OF oWndPrincipal TITLE "Clientes" ICON "W11_CLIENTES.BMP"
@40,1 BUTTONBAR oBar SIZE 1400,40 OF oMdi
聽 聽oBar:SetColor( CLR_BLACK, RGB(240,240,240) )


// PODEMOS COLOCAR NUESTROS CONTROLES EN EL BUTTONBAR

聽 聽 聽 @3,005 BTNBMP aBtn[1] OF oBar FILE "W11_CLOSE.bmp" SIZE 30,30 ACTION oMdi:End() NOBORDER
聽 聽 聽 聽 聽aBtn[1]:cToolTip="Cerrar ventana"
聽 聽 聽 @2,040 IMAGE FILE "SEPARADOR.JPG" SIZE 1,33 聽OF oBar PIXEL NOBORDER

聽 聽 聽 @3,045 BTNBMP aBtn[2] FILE "W11_GO_FIRST.BMP" SIZE 30,30 OF oBar UPDATE NOBORDER //ACTION GoToMenu(oBar22)
聽 聽 聽 聽 聽aBtn[2]:bAction := { || oMdi:GoToMenu() }
聽 聽 聽 聽 聽aBtn[2]:cToolTip="Solapa Men煤"
聽 聽 聽 聽 聽aBtn[2]:nClrPane := RGB(240,240,240)

聽 聽 聽 @3,075 BTNBMP aBtn[3] FILE "W11_SELECT.BMP" SIZE 30,30 OF oBar UPDATE NOBORDER //ACTION MenuFolders(oWNDC)
聽 聽 聽 聽 聽aBtn[3]:bAction := { || oMdi:MenuFolders() }
聽 聽 聽 聽 聽aBtn[3]:cToolTip="Seleccionar ventana"
聽 聽 聽 聽 聽aBtn[3]:nClrPane := RGB(240,240,240)

聽 聽 聽 @3,105 BTNBMP aBtn[4] FILE "W11_MDI_LEFT.BMP" SIZE 30,30 OF oBar UPDATE NOBORDER //ACTION MenuFolders(oWNDC)
聽 聽 聽 聽 聽aBtn[4]:bACTION := { || oMdi:Mover_Ventanas_no_visibles(-1) 聽}
聽 聽 聽 聽 聽aBtn[4]:cToolTip="Mover solapas a la izquierda"
聽 聽 聽 聽 聽aBtn[4]:nClrPane := RGB(240,240,240)


聽 聽 聽 @3,135 BTNBMP aBtn[5] FILE "W11_MDI_RIGHT.BMP" SIZE 30,30 OF oBar UPDATE NOBORDER //ACTION MenuFolders(oWNDC)
聽 聽 聽 聽 聽aBtn[5]:bACTION := { || oMdi:Mover_Ventanas_no_visibles(1) 聽}
聽 聽 聽 聽 聽aBtn[5]:cToolTip="Mover solapas a la derecha"
聽 聽 聽 聽 聽aBtn[5]:nClrPane := RGB(240,240,240)

聽 聽 聽 @2,165 IMAGE FILE "SEPARADOR.JPG" SIZE 1,33 OF oBar PIXEL NOBORDER



聽 聽 聽 @180,1 SAY oSay prompt "I'M "+oMdi:cCaption+CRLF+"with Icon ..."+CRLF+"and.. Fivewin ButtonBar" SIZE 1350,400 COLOR CLR_BLUE pixel FONT oFont CENTER


聽 聽 聽 @100,10 BTNBMP PROMPT "Abrir dialogo" OF oMdi SIZE 100,25 ACTION DIALOGO(oMdi)


ACTIVATE WINDOW oMDI ON PAINT (oSay:nWidth:=oMdi:nWidth, oSay:Refresh() )


return nil


STATIC FUNCTION DIALOGO(oMdi)

Local oDlg

DEFINE DIALOG oDlg TITLE "Test ...." FROM 100,100 TO 400,400 OF oMdi PIXEL

聽 聽@ 50,60 SAY "I`m a Dialog" OF oDlg PIXEL
聽 聽@120,10 BUTTON "Close" of oDlg SIZE 80,20 ACTION oDlg:End() 聽PIXEL

ACTIVATE DIALOG oDlg CENTER

RETURN(NIL)
Y como final el include MdiChildFolder.ch utilizado
Code (fw): Select all Collapse
# include "fivewin.ch"


#xcommand DEFINE WINDOW MDICHILDFOLDER [<oWnd>] ;
聽 聽 聽 聽 聽 聽 聽[ MDICHILD ] ;
聽 聽 聽 聽 聽 聽 聽[ FROM <nTop>, <nLeft> TO <nBottom>, <nRight> ] ;
聽 聽 聽 聽 聽 聽 聽[ TITLE <cTitle> ] ;
聽 聽 聽 聽 聽 聽 聽[ BRUSH <oBrush> ] ;
聽 聽 聽 聽 聽 聽 聽[ CURSOR <oCursor> ] ;
聽 聽 聽 聽 聽 聽 聽[ MENU <oMenu> ] ;
聽 聽 聽 聽 聽 聽 聽[ MENUINFO <nMenuInfo> ] ;
聽 聽 聽 聽 聽 聽 聽[ ICON <oIco> ] ;
聽 聽 聽 聽 聽 聽 聽[ OF <oParent> ] ;
聽 聽 聽 聽 聽 聽 聽[ <vscroll: VSCROLL, VERTICAL SCROLL> ] ;
聽 聽 聽 聽 聽 聽 聽[ <hscroll: HSCROLL, HORIZONTAL SCROLL> ] ;
聽 聽 聽 聽 聽 聽 聽[ <color: COLOR, COLORS> <nClrFore> [,<nClrBack>] ] ;
聽 聽 聽 聽 聽 聽 聽[ <pixel: PIXEL> ] ;
聽 聽 聽 聽 聽 聽 聽[ STYLE <nStyle> ] ;
聽 聽 聽 聽 聽 聽 聽[ <HelpId: HELPID, HELP ID> <nHelpId> ] ;
聽 聽 聽 聽 聽 聽 聽[ BORDER <border: NONE, SINGLE> ] ;
聽 聽 聽 聽 聽 聽 聽[ <NoSysMenu: 聽NOSYSMENU, NO SYSMENU> ] ;
聽 聽 聽 聽 聽 聽 聽[ <NoCaption: 聽NOCAPTION, NO CAPTION, NO TITLE> ] ;
聽 聽 聽 聽 聽 聽 聽[ <NoIconize: 聽NOICONIZE, NOMINIMIZE> ] ;
聽 聽 聽 聽 聽 聽 聽[ <NoMaximize: NOZOOM, NO ZOOM, NOMAXIMIZE, NO MAXIMIZE> ] ;
聽 聽 聽 聽=> ;
聽 聽 聽 聽 聽 [<oWnd> := ] TMdiChildFolder():New( <nTop>, <nLeft>, <nBottom>, <nRight>,;
聽 聽 聽 聽 聽 聽 聽<cTitle>, <nStyle>, <oMenu>, <oParent>, <oIco>, <.vscroll.>, <nClrFore>,;
聽 聽 聽 聽 聽 聽 聽<nClrBack>, <oCursor>, <oBrush>, <.pixel.>, <.hscroll.>,;
聽 聽 聽 聽 聽 聽 聽<nHelpId>, [Upper(<(border)>)], !<.NoSysMenu.>, !<.NoCaption.>,;
聽 聽 聽 聽 聽 聽 聽!<.NoIconize.>, !<.NoMaximize.>, [<nMenuInfo>] )


#xcommand @ <nRow>, <nCol> BTNBMPFOLDER [<oBtn>] ;
聽 聽 聽 聽 聽 聽 聽[ <resource: NAME, RESNAME, RESOURCE> <cResName1> ;
聽 聽 聽 聽 聽 聽 聽 聽 [,<cResName2>[,<cResName3>] ] ] ;
聽 聽 聽 聽 聽 聽 聽[ <file: FILE, FILENAME, DISK> <cBmpFile1> ;
聽 聽 聽 聽 聽 聽 聽 聽 [,<cBmpFile2>[,<cBmpFile3>] ] ] ;
聽 聽 聽 聽 聽 聽 聽[ SIZE <nWidth>, <nHeight> ] ;
聽 聽 聽 聽 聽 聽 聽[ ACTION <uAction,...> ] ;
聽 聽 聽 聽 聽 聽 聽[ <of:OF, WINDOW, DIALOG> <oWnd> ] ;
聽 聽 聽 聽 聽 聽 聽[ MESSAGE <cMsg> ] ;
聽 聽 聽 聽 聽 聽 聽[ WHEN <uWhen> ] ;
聽 聽 聽 聽 聽 聽 聽[ <adjust: ADJUST> ] ;
聽 聽 聽 聽 聽 聽 聽[ <lUpdate: UPDATE> ] ;
聽 聽 聽 聽 聽 聽 聽[ PROMPT <cPrompt> ] ;
聽 聽 聽 聽 聽 聽 聽[ FONT <oFont> ] ;
聽 聽 聽 聽 聽 聽 聽[ <lNoBorder: NOBORDER> ] ;
聽 聽 聽 聽 聽 聽 聽[ <layout: CENTER, TOP, LEFT, BOTTOM, RIGHT> ] ;
聽 聽 聽 => ;
聽 聽 聽 聽 聽[ <oBtn> := ] TBtnBmpFolder():New( <nRow>, <nCol>, <nWidth>, <nHeight>,;
聽 聽 聽 聽 聽 聽 <cResName1>, <cResName2>, <cBmpFile1>, <cBmpFile2>,;
聽 聽 聽 聽 聽 聽 [{|Self|<uAction>}], <oWnd>, <cMsg>, <{uWhen}>, <.adjust.>,;
聽 聽 聽 聽 聽 聽 <.lUpdate.>, <cPrompt>, <oFont>, [<cResName3>], [<cBmpFile3>],;
聽 聽 聽 聽 聽 聽 !<.lNoBorder.>, [ Upper(<(layout)>) ] )
P.d.: Se aceptan sugerencias, ideas .....
Jes煤s Mar铆n
deumare@gmail.com
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: CLASS TMdiFolder ( a la atenci贸n de Leandro )
Posted: Mon Jun 05, 2023 06:11 PM
Muy buen trabajo!

Muchas gracias por compartirlo :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 1816
Joined: Wed Oct 26, 2005 02:49 PM
Re: CLASS TMdiFolder ( a la atenci贸n de Leandro )
Posted: Wed Jun 07, 2023 11:34 AM

Jesus wow, que buen aporte, excelente desarrollo.

En un rato intento compilar el ejemplo que publicaste.

Y luego en estos d铆as te molesto para que me ayudes con la implementaci贸n en la aplicaci贸n principal.

Muchas gracias por tu tiempo.

De antemano gracias.

Saludos
LEANDRO AREVALO
Bogot谩 (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 25.01 ] [ xHarbour 64 bits) ]
Posts: 199
Joined: Wed Jan 02, 2019 08:36 AM
Re: CLASS TMdiFolder ( a la atenci贸n de Leandro )
Posted: Fri Jun 09, 2023 04:34 AM
Buenos dias Leandro.

Ya lo tienes en tu correo.

Ahora la clase tiene dos nuevas variables :

::nTopFolderPosition que te permite poner los folder a la altura que desees. As铆 puedes poner la ButtonBar o la RibbonBar en la parte superior

::nTopGlobalFolderPosition que si lo pones en el primer MDI, todas las pesta帽as estar谩n a la misma altura. Solo es necesario ponerlo una vez

Te pongo dos videos para ver la diferencia





Saludos
Jes煤s Mar铆n
deumare@gmail.com
Posts: 7317
Joined: Thu Oct 18, 2012 07:17 PM
Re: CLASS TMdiFolder ( a la atenci贸n de Leandro )
Posted: Fri Jun 09, 2023 12:42 PM

disculpa mi ignorancia pero no entend铆 muy bien para que seria, me puedes mostrar un ejemplo de aplicaci贸n?

Since from 1991/1992 ( fw for clipper Rel. 14.4 - Momos)

I use : FiveWin for Harbour March-April 2024 - Harbour 3.2.0dev (harbour_bcc770_32_20240309) - Bcc7.70 - xMate ver. 1.15.3 - PellesC - mail: silvio[dot]falconi[at]gmail[dot]com
Posts: 199
Joined: Wed Jan 02, 2019 08:36 AM
Re: CLASS TMdiFolder ( a la atenci贸n de Leandro )
Posted: Fri Jun 09, 2023 03:32 PM
Ciao Silvio
Chiaro. Nessun problema. Ti dico.
Ogni folder 猫 una finestra figlio MDI.
Invece di essere mostrata come una finestra di Windows, (con le sue vecchie icone di Windows di cui gi脿 conosci il problema perch茅 ne hai discusso pi霉 volte in questo forum) viene mostrata ingrandita all'interno di un Frame.

Ha tutte le caratteristiche (o almeno ci sto provando) di una finestra di Windows: move, minimizza, ripristina, massimizza, chiudi, ridimensiona...

Puoi aprire la stessa opzione di menu pi霉 volte. Se esiste gi脿, aprir脿 una finestra Mdi Child, con un numero in pi霉... quindi, ad esempio, puoi avere la manutenzione clienti aperta due volte. (ovviamente bisogna programmarlo come se fosse un ambiente di rete).

Quindi ho aggiunto alcune funzionalit脿: icona MDI visualizzata nell folder, miniature dell'ultima azione di ogni finestra quando si passa con il mouse sopra il folder... ecc...

Ora, l'amico Leandro vuole metterci sopra un RibonBar. Ho creato le variabili necessarie per testarlo.

Tutto questo nasce da una domanda che ha fatto Leandro.
https://forums.fivetechsupport.com/viewtopic.php?f=6&t=42657&p=256856&sid=dfea683816604365a6dc936587427e86&sid=dfea683816604365a6dc936587427e86#p256856

Salutti

-------------------------

Hola Silvio
Claro. No hay problema. Te cuento.
Cada folder es una ventana MDI Child.
En vez de mostrarse como una ventana windows, ( con sus iconos del viejo windows cuyo problema tu ya conoces pues lo has hablado en este foro varias veces)se muestra maximizada dentro de un Frame.

Tiene todas las particularidades ( o al menos eso estoy intentando) de una ventana windows : Mover, minimizar, restaurar, maximizar, cerrar, cambiar tama帽o....

Puedes abrir la misma opci贸n de menu varias veces. Si ya existe abrir谩 una ventana Mdi Child, con un numero mas.... con lo que, por ejemplo, puedes tener dos veces abierto el mantenimiento de clientes. (obviamente tienes que programarlo como si fuera un entorno de red).

Luego he a帽adido algunas caracteristicas : icono del MDI mostrado en el folder, miniaturas de la ultima acci贸n de cada ventana al pasar el rat贸n por la solapa.... etc...

Todo esto nace de una pregunta que hizo Leandro
https://forums.fivetechsupport.com/viewtopic.php?f=6&t=42657&p=256856&sid=dfea683816604365a6dc936587427e86&sid=dfea683816604365a6dc936587427e86#p256856

Ahora, el amigo Leandro, quiere poner un RibonBar en la parte superior. He creado las variables necesarias para que lo pruebe.

Saludos
Jes煤s Mar铆n
deumare@gmail.com
Posts: 7317
Joined: Thu Oct 18, 2012 07:17 PM
Re: CLASS TMdiFolder ( a la atenci贸n de Leandro )
Posted: Fri Jun 09, 2023 04:51 PM
JESUS MARIN wrote:Ciao Silvio
Chiaro. Nessun problema. Ti dico.
Ogni folder 猫 una finestra figlio MDI.
Invece di essere mostrata come una finestra di Windows, (con le sue vecchie icone di Windows di cui gi脿 conosci il problema perch茅 ne hai discusso pi霉 volte in questo forum) viene mostrata ingrandita all'interno di un Frame.

Ha tutte le caratteristiche (o almeno ci sto provando) di una finestra di Windows: move, minimizza, ripristina, massimizza, chiudi, ridimensiona...

Puoi aprire la stessa opzione di menu pi霉 volte. Se esiste gi脿, aprir脿 una finestra Mdi Child, con un numero in pi霉... quindi, ad esempio, puoi avere la manutenzione clienti aperta due volte. (ovviamente bisogna programmarlo come se fosse un ambiente di rete).

Quindi ho aggiunto alcune funzionalit脿: icona MDI visualizzata nell folder, miniature dell'ultima azione di ogni finestra quando si passa con il mouse sopra il folder... ecc...

Ora, l'amico Leandro vuole metterci sopra un RibonBar. Ho creato le variabili necessarie per testarlo.

Tutto questo nasce da una domanda che ha fatto Leandro.
https://forums.fivetechsupport.com/viewtopic.php?f=6&t=42657&p=256856&sid=dfea683816604365a6dc936587427e86&sid=8d63f8f3c58ceebd1424dff88aac419d#p256856

Salutti

-------------------------

Hola Silvio
Claro. No hay problema. Te cuento.
Cada folder es una ventana MDI Child.
En vez de mostrarse como una ventana windows, ( con sus iconos del viejo windows cuyo problema tu ya conoces pues lo has hablado en este foro varias veces)se muestra maximizada dentro de un Frame.

Tiene todas las particularidades ( o al menos eso estoy intentando) de una ventana windows : Mover, minimizar, restaurar, maximizar, cerrar, cambiar tama帽o....

Puedes abrir la misma opci贸n de menu varias veces. Si ya existe abrir谩 una ventana Mdi Child, con un numero mas.... con lo que, por ejemplo, puedes tener dos veces abierto el mantenimiento de clientes. (obviamente tienes que programarlo como si fuera un entorno de red).

Luego he a帽adido algunas caracteristicas : icono del MDI mostrado en el folder, miniaturas de la ultima acci贸n de cada ventana al pasar el rat贸n por la solapa.... etc...

Todo esto nace de una pregunta que hizo Leandro
https://forums.fivetechsupport.com/viewtopic.php?f=6&t=42657&p=256856&sid=dfea683816604365a6dc936587427e86&sid=8d63f8f3c58ceebd1424dff88aac419d#p256856

Ahora, el amigo Leandro, quiere poner un RibonBar en la parte superior. He creado las variables necesarias para que lo pruebe.

Saludos

sin embargo somos. Volvamos al punto de partida, ya que no podemos tener el ni帽o de Windows con el tema correcto, sino el tema antiguo, que entonces no entiendo si no podemos hacer lo que hacen otros lenguajes de programaci贸n para obtener el tema correcto tambi茅n para el ni帽o. ventanas hay algo que me falta....
Since from 1991/1992 ( fw for clipper Rel. 14.4 - Momos)

I use : FiveWin for Harbour March-April 2024 - Harbour 3.2.0dev (harbour_bcc770_32_20240309) - Bcc7.70 - xMate ver. 1.15.3 - PellesC - mail: silvio[dot]falconi[at]gmail[dot]com
Posts: 10
Joined: Fri Jun 20, 2008 01:14 AM
Re: CLASS TMdiFolder ( a la atenci贸n de Leandro )
Posted: Tue Jun 04, 2024 11:50 PM

Buenas tardes Jes煤s me parece excelente , me podr铆as proporcionar la clase TMdiChildFolder, para buscar implementar.

de antemano gracias

Saludos

Posts: 318
Joined: Fri Jan 14, 2022 08:37 AM
Re: CLASS TMdiFolder ( a la atenci贸n de Leandro )
Posted: Wed Jun 05, 2024 08:32 PM

Magn铆fico trabajo Jesus !

Felicidades !

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: CLASS TMdiFolder ( a la atenci贸n de Leandro )
Posted: Thu Jun 06, 2024 06:29 AM
Es una gran satisfacci贸n ver cuando los usuarios de FWH alcanzan el nivel de Maestria y desarrollan excelentes contribuciones como en este caso :-)

Gracias Jes煤s!
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 199
Joined: Wed Jan 02, 2019 08:36 AM
Re: CLASS TMdiFolder ( a la atenci贸n de Leandro )
Posted: Thu Jun 06, 2024 03:10 PM

Querido Antonio

Gracias por el comentario. Quedo abrumado.

Saludos

Jes煤s Mar铆n
deumare@gmail.com

Continue the discussion