MENU FLOTANTE - TREE

HMG en Español

Moderator: Rathinagiri

Post Reply
User avatar
SALINETAS24
Posts: 667
Joined: Tue Feb 27, 2018 3:06 am
DBs Used: DBF
Contact:

MENU FLOTANTE - TREE

Post 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.!!
Attachments
Menu_List.rar
(1.2 MiB) Downloaded 192 times
Como dijo el gran pensador Hommer Simpson..., - En este mundo solo hay 3 tipos de personas, los que saben contar y los que no. :shock:
User avatar
SALINETAS24
Posts: 667
Joined: Tue Feb 27, 2018 3:06 am
DBs Used: DBF
Contact:

Re: MENU FLOTANTE - TREE

Post 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-)
Attachments
Mnu_Lbl.rar
(1.21 MiB) Downloaded 183 times
Como dijo el gran pensador Hommer Simpson..., - En este mundo solo hay 3 tipos de personas, los que saben contar y los que no. :shock:
User avatar
danielmaximiliano
Posts: 2647
Joined: Fri Apr 09, 2010 4:53 pm
Location: Argentina
Contact:

Re: MENU FLOTANTE - TREE

Post by danielmaximiliano »

gracias Salinetas
*´¨)
¸.·´¸.·*´¨) ¸.·*¨)
(¸.·´. (¸.·` *
.·`. Harbour/HMG : It's magic !
(¸.·``··*

Saludos / Regards
DaNiElMaXiMiLiAnO

Whatsapp. := +54901169026142
Telegram Name := DaNiElMaXiMiLiAnO
User avatar
SALINETAS24
Posts: 667
Joined: Tue Feb 27, 2018 3:06 am
DBs Used: DBF
Contact:

Re: MENU FLOTANTE - TREE

Post 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

Como dijo el gran pensador Hommer Simpson..., - En este mundo solo hay 3 tipos de personas, los que saben contar y los que no. :shock:
User avatar
Renegado
Posts: 88
Joined: Tue Mar 11, 2014 11:59 pm

Re: MENU FLOTANTE - TREE

Post by Renegado »

Gracias, Salinetas24
Post Reply