otra de menu para Jose Murugosa y Silvio en Italia

otra de menu para Jose Murugosa y Silvio en Italia

Postby sildata » 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.
sildata
 
Posts: 38
Joined: Thu May 11, 2006 7:41 pm

Postby jose_murugosa » Tue Dec 26, 2006 2: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 y el teclado y la IA!!"
User avatar
jose_murugosa
 
Posts: 1181
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay

Postby Silvio » Tue Dec 26, 2006 11:32 pm

sorry,
but I not understand the problem ..
I compiled it ....
Best Regards, Saludos

Falconi Silvio
User avatar
Silvio
 
Posts: 3107
Joined: Fri Oct 07, 2005 6:28 pm
Location: Teramo,Italy


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 64 guests