FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour otra de menu para Jose Murugosa y Silvio en Italia
Posts: 38
Joined: Thu May 11, 2006 07:41 PM
otra de menu para Jose Murugosa y Silvio en Italia
Posted: Tue Dec 26, 2006 12:47 PM

Aqui otra manera de intentar solucionar el problema de los menus configurables, esperando sus comentarios:
* FILE NAME: TUTOR.PRG
* BY: Rodolfo Silva C.
* EMAIL: sildata@cantv.net

  • DATE: 12/25/6
  • CUALQUIER MEJORA U OPTIMIZACION DE ESTE CODIGO SERA BIENVENIDA

INCLUDE "fivewin.ch"

STATIC ownd
* ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ *
FUNCTION main
* ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ *
LOCAL obru
define brush obru style bricks
define window ownd TITLE "tutor01_00" brush obru MENU g_menu()
SET MESSAGE of ownd TO "tutorial" clock DATE KEYBOARD
activate window ownd maximized ON INIT dialogo()
RETURN nil
* ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ *
STATIC FUNCTION g_menu()
* ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ *
LOCAL amenu := { "Buscar", "Agregar", "Modificar", "Eliminar", "Listar",;
"Calculadora","Otros", "Salir" }
* esta matriz deberia venir formada como un parametro desde el programa
* llamante, lo cual implica que los elementos pueden ser estos los estandares
* u otros diferentes segun sea la necesidad.
LOCAL cx, owin, omenu, i
LOCAL nlgmnu := LEN( amenu ) // tama¤o del menu
---------- aqui DETECTO Y traigo el objeto de la ventana activa en "OWIN"
* pues supongo que desconozco cual es la ventana que tiene el foco o activa
* asi de esta manera puedo aplicar el menu a cualquier ventana que yo
* seleccione previamente o lo solicite.
IF !( cx := GetProp( GetActiveWindow(), "WP" ) ) == 0
oWin := GetAllWin() [cx]
ELSE
oWin := Twindow()
oWin:hWnd := GetActiveWindow()
ENDIF
---------- fin
MENU oMenu
FOR i = 1 TO nlgmnu
MENUITEM( aMENU[ i ] ) ACTION( menuacc(@oMenu), oMenu:refresh(), sysrefresh() )
NEXT
ENDMENU
RETURN oMenu
* ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ *
STATIC FUNCTION MENUACC( oMenu )
* ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ *
* Quizas Antonio o algun otro colega nos pueda indicar donde encontrar
* la documentacion o significado de : olastitem ; se lo que hace pero no se como
LOCAL opcion := oMenu:olastitem[ 2 ] // ojo devuelve el nombre de la opcion seleccionada
msginfo(oemtoansi("Usted Seleccion¢: ") + opcion )
* en la estructura inferior se podria habilitar el sonido "VOS" de la opcion
* hablada.
* tambien serviria para bloquear opciones segun nivel de acceso del usuario OJO
DO CASE
CASE UPPER( opcion ) = "SALIR"
* en palabras "SALIR" o segun sea la opcion seleccionada
oMenu:end()
CASE UPPER( opcion ) = "CALCULADORA"
winexec("calc")
ENDCASE
RETURN NIL
* ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ *
STATIC FUNCTION dialogo()
RETURN nil
* ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ *
+ EOF: TUTOR.PRG
Formatted by: dANALYST Gold (Clipper 5.x) V5.0 on 12/25/6 at 9:46 AM.

Posts: 1279
Joined: Mon Feb 06, 2006 04:28 PM
otra de menu para Jose Murugosa y Silvio en Italia
Posted: Tue Dec 26, 2006 02:26 PM

Gracias por tu aporte Sildata!! :D

Creo que este es un tema interesante y fundamental para cualquier aplicación que nos propongamos hacer.

Saludos/Regards,

José Murugosa

"Los errores en programación, siempre están entre la silla, el teclado y la IA!!"
Posts: 3107
Joined: Fri Oct 07, 2005 06:28 PM
otra de menu para Jose Murugosa y Silvio en Italia
Posted: Tue Dec 26, 2006 11:32 PM

sorry,
but I not understand the problem ..
I compiled it ....

Best Regards, Saludos



Falconi Silvio

Continue the discussion