Page 1 of 1

MdiChildFolder beta.1

Posted: Tue Aug 05, 2025 8:58 am
by JESUS MARIN
Buenas a todos, amigos.
Animado por el maestro Linares, me atrevo a publicar MdiChildFolder en GitHub.
https://github.com/JesusMarinVives/MdiChildFolder
(es la primera vez que creo un repositorio, mil perdones si algo falla.)

¿Qué es MdiChildFolder?

Es un entorno de trabajo con ventanas MDI CHILD, que se muestran como folders en la barra superior de nuestra única ventana.
Image

¿ Cual es el proceder ?
Primero creamos una ventana MDI (o Frame) sin marcos, cabecera, botones....

Code: Select all | Expand

DEFINE WINDOW oWnd PIXEL MDI STYLE nOR( WS_POPUP, WS_BORDER )
Para abrir una ventana MDI CHILD, solo tendremos que escribir este código

Code: Select all | Expand

FUNCTION New()

LOCAL oWnd

   DEFINE WINDOW MDICHILDFOLDER oWnd OF oWndPrincipal TITLE "Nueva"

   ACTIVATE WINDOW oWnd


RETURN(NIL)
Donde la única diferencia será escribir MDICHILDFOLDER. Ver ejemplo en new.prg

Nota : El objetivo de esta clase no es otro que el de entretenerme, por lo tanto se puede usar a discreción. Eso si, sin ningún tipo de garantía. Tal vez, con algo de suerte, pueda inspirar a alguién.

Luego subiré algunos videos y comentaré algunas funcionalidades.
Saludos a todos y feliz verano.

Re: MdiChildFolder beta.1

Posted: Tue Aug 05, 2025 9:14 am
by paquitohm
Muchísimas gracias Jesús por tu super aporte.
Me impresionó una vez que vi por este foro una demo que pusiste.

A ver si alguna vez termino con el verifactu, que creo que seguiré con ello más allá de esta vida y lo pruebo y adapto a mi estilo de formularios.

Gracias de nuevo por tu generosidad

PD. Si pudieras comentar un poco como llegaste a este magnifico invento

Re: MdiChildFolder beta.1

Posted: Tue Aug 05, 2025 9:35 am
by JESUS MARIN
Image

Ejemplo 1 ( haz click en la imagen para que se reproduzca)

Abriendo varias ventanas.
Para probar que cosas funcionan, he hecho un menú (cada uno que se lo haga a su gusto) y he puesto ;
- Una ventana con navegador de internet. Web.prg Usando WebView
- Un visor de imagenes (visor.prg)
- Un visor de pff... Es una versión reducida de mi propio visor de pdf. (pdf25.prg)
- Nueva ventanas. New.prg Abrir una ventana sin nada, con un folder y SetControl() modificado y otra con un Ribbon superior. (esto tendrá una explicación separada-

Re: MdiChildFolder beta.1

Posted: Tue Aug 05, 2025 9:49 am
by JESUS MARIN
Image

Ejemplo 2. Abriendo varias ventanas con el mismo nombre.
(pulsa en la imagen para reproducir el gif)

En este ejemplo se abren varias ventanas MDI CHILD que tienen el nombre o caption "nuevo"
Automaticamente el sistema, numera e incrementa el caption para diferenciar cada ventana.
En caso de abrir archivos de datos, debe programarse como si de un entorno de red se tratara.

De tal manera que se crea :
Nueva, Nueva [2], Nueva [3]..... Nueva[n]

Como idea a desarrollar, se puede crear la opción de que sea MODAL

Re: MdiChildFolder beta.1

Posted: Tue Aug 05, 2025 10:00 am
by JESUS MARIN
Ejemplo 3

Movimiento. Minimizar, Maximizar, Restaurar.... y cambiar tamaño.

El frame principal ( y todas sus ventanas hijas ), pueden moverse haciendo click sobre la barra superior, arrastrando a la nueva posición. Igual que cualquier ventana.

Con los botones Minimizar, Restaurar / Maximizar y cerrar, hacemos las mismas funciones que en cualquier ventana. (excepto cerrar que cierra todas las ventanas)

En el margen derecho y el margen inferior se puede redimensionar el tamaño.

Nota : Falta probar en escenarios reales, por ejemplo cuando se recupera el foco, etc...

Re: MdiChildFolder beta.1

Posted: Tue Aug 05, 2025 10:16 am
by JESUS MARIN
Ejemplo 4

Movimiento de las pestañas/solapas/ventanas
Image

¿qué ocurre si tenemos mas ventanas abiertas que espacio en nuestro barra superior?
Image


Al igual que en los Folders se van ocultando.

Pero podemos moverlas a derecha e izquierda
Image

y también con esta función ir siempre a la primera pestaña (que suele ser el menú principal)
Image


ver METHOD Mover_ventanas_no_visibles() // Mueve las solapas de izq a der

Re: MdiChildFolder beta.1

Posted: Tue Aug 05, 2025 10:35 am
by cmsoft
Jesus, que buena pinta tiene!! Felicitaciones y gracias por compartirlo!!

Re: MdiChildFolder beta.1

Posted: Tue Aug 05, 2025 10:36 am
by JESUS MARIN
EJEMPLO 5 - MENU CONTEXTUAL

Aunque podemos poner todas las opciones en una buttonBar, siempre estará disponible, pulsando el boton derecho en el fondo de la ventana y/o donde se quiera implementar, un menú contextual que tiene :

a ) Todas las ventanas abiertas, Marcando con un "check" la ventana acutal. Seleccionando cualquier otra, se abre la ventana pulsada.
b ) Resto de opciones : Ir a la solapa 1, mover solapas a la izq / derecha, cerrar la ventana actual

Image
Image

Re: MdiChildFolder beta.1

Posted: Tue Aug 05, 2025 11:23 am
by Antonio Linares
Querido Jesús,

Gracias por tu generosidad y por compartir un trabajo tan profesional !

Sencillamente excelente !!! :D

Re: MdiChildFolder beta.1

Posted: Tue Aug 05, 2025 4:12 pm
by karinha
Excelente Jesus! Gracias, tks.

Regards, saludos.

Re: MdiChildFolder beta.1

Posted: Tue Aug 05, 2025 6:42 pm
by sysctrl2
Gracias por darnos esperanza ya estamos algo viejitos a ver si entendemos :D :lol: :shock:

Re: MdiChildFolder beta.1

Posted: Wed Aug 06, 2025 1:44 am
by leandro
Tenemos problemas al intentar descargar el código, dice que virus detectado.

Image

Re: MdiChildFolder beta.1

Posted: Wed Aug 06, 2025 4:52 am
by Lailton
Fantastico trabajo.

Re: MdiChildFolder beta.1

Posted: Wed Aug 06, 2025 6:06 am
by JESUS MARIN
Leandro.
Será porque esta incluido el .exe ?
Dime si te lo mando a tu correo

Re: MdiChildFolder beta.1

Posted: Wed Aug 06, 2025 12:48 pm
by acuellar
Leandro

En Seguridad de Windows desactivar temporalmente Protección en tiempo real

Así lo podrás descargar