Page 1 of 1

MENU FLOTANTE - TREE

Posted: Fri Feb 03, 2023 10:09 am
by SALINETAS24
Hola a todos.

A mi no me gusta la forma del TREE para hacer menús, ya que puede llegar a reservar un espacio muy grand de la pantalla, me gustaría más que se abran y cierren las opciones.., me puse a trabajar en ello.

Aquí os paso las fuentes de un pequeño programa que permite crear uno o varios menús a la derecha o izquierda de la pantalla y que se van mostrando las opciones conforme se va haciendo click con el ratón.
Posiblemente tenga alguna cosa que mejorar pero ya esta operativo.
Como podéis ver es muy fácil de utilizar, solo tienes que incluir en tus programas "_latmenu.prg" que es donde están todas las funciones y "_latmenu.ch" que son el include para los comandos.
Como veréis es muy fácil de modificar, no utiliza ninguna llamada al "C", solo HMG

Espero que sea de vuestro agrado, que lo uséis y que lo mejoréis.

Un saludo a todos y una cervecita virtual, bien fresquita..., que esta ronda la pago yo.!!

Re: MENU FLOTANTE - TREE

Posted: Sat Feb 18, 2023 8:53 pm
by SALINETAS24
Hola a todos.
Aquí os envío una nueva versión del MENU LATERAL, le he incorporado gráficos y creo que queda más chulo.
En esta versión en lugar de trabajar con un LISTBOX lo hago todo con LABEL.
Espero que os guste y que lo podáis aprovechar.
Vamos con una cervecita bien fresquita que esta ronda la pago yo. 8-)

Re: MENU FLOTANTE - TREE

Posted: Sat Feb 18, 2023 9:24 pm
by danielmaximiliano
gracias Salinetas

Re: MENU FLOTANTE - TREE

Posted: Mon Feb 20, 2023 7:41 am
by SALINETAS24
Hola, he detectado un pequeño error, hay que cambiar el procedimiento JM_CONTROLEVENTO por este nuevo que adjunto. El motivo es asegurarse de que existe el control que se quiere cambiar de color.
Un saludo

Code: Select all


// -----------------------------------------------------------------------------------
// jm_ControlEvento -> Cambia el color el la etiqueta de los MENUS. Se llama "LABEL_XX"
// -----------------------------------------------------------------------------------
PROC jm_ControlEvento()
STATIC xControl_Falso,xWindow_Falso
LOCAL  nHWnd    := EventHWND()
LOCAL  nMsg     := EventMSG()
LOCAL  nWParam  := EventWPARAM()
LOCAL  nLParam  := EventLPARAM()
LOCAL  cControl
LOCAL  cForm

	IF GetControlIndexByHandle (nhWnd) > 0 
		GetControlNameByHandle(nHWnd, @cControl, @cForm)
		IF SUBSTR(cControl,1,6)="LABEL_"      // Detecta que el nombre del CONTROL
			SWITCH nMsg
				CASE WM_MOUSEMOVE 
					IF !EMPTY(xControl_Falso) .AND. xControl_Falso!=cControl
						SetProperty(cForm, xControl_Falso, "FONTCOLOR", BLACK)  
						SetProperty(cForm, xControl_Falso, "FONTBOLD", .F.)
						xControl_Falso:=""
					ENDIF
					SetProperty(cForm, cControl, "FONTCOLOR", RED)
					SetProperty(cForm, cControl, "FONTBOLD", .T.)
					xControl_Falso:=cControl
					xWindow_Falso:=cForm
					EXIT
			ENDSWITCH
		ELSE
			IF !EMPTY(xControl_Falso) .AND. xControl_Falso!=cControl
				IF IsControlDefined(&xControl_Falso,&cForm) 
					SetProperty(cForm, xControl_Falso, "FONTCOLOR", BLACK)
					SetProperty(cForm, xControl_Falso, "FONTBOLD", .F.)
					xControl_Falso:=""
				ENDIF
			ENDIF
		ENDIF
	ELSE
		SWITCH nMsg
		CASE WM_MOUSEMOVE
			IF !EMPTY(xControl_Falso) 
				IF IsControlDefined(&xControl_Falso,&xWindow_Falso) 
					SetProperty(xWindow_Falso, xControl_Falso, "FONTCOLOR", BLACK)
					SetProperty(xWindow_Falso, xControl_Falso, "FONTBOLD", .F.)
					xControl_Falso:=""
				ENDIF
			ENDIF
		EXIT
		ENDSWITCH	
	ENDIF

RETURN


Re: MENU FLOTANTE - TREE

Posted: Tue Feb 28, 2023 2:18 am
by Renegado
Gracias, Salinetas24