|
Página 1 de 1
|
Teclas Aceleradoras En Submenu
Autor |
Mensaje |
ahtonio
Programador
Registrado: Octobre 2009
Mensajes: 144
Edad: 58 Ubicación: Zaragoza
|
Teclas Aceleradoras En Submenu
Hola, estoy intentando hacer un Menu por codigo, el cual se crea en una clase, que llaman los formularios al abrir y que añaden este menu al formulario que la instancia. Todo funciona menos las teclas de acceso a las opciones tipo <ctrl+Home>. Es la propiedad shortcut de los menus, pero no se como se representa cada tecla.
Alguien habra creado un menu asi y sabra como se debe codificar, Verdad?.
Agradecido de antemano, un abrazo a todos.
Capa, muchas gracias por acordarte del cumple. Realmente casi nadie no mi cercano, se acuerda por las fechas que son. Cuando cumples el 31 de Diciembre, todo el mundo te felicita la navidad y el año nuevo, pero el cumple.....
|
#1 Martes, 26 Enero 2010, 17:21 |
|
|
Ender
Aprendiz
Registrado: Diciembre 2009
Mensajes: 55
Edad: 48
|
Re: Teclas Aceleradoras En Submenu
De lo de los Shortcuts no puedo ayudarte, pero quería felicitarte aunque fuera con retraso!
Salu2, crack, y felicidades de nuevo!
|
#2 Martes, 26 Enero 2010, 20:02 |
|
|
ahtonio
Programador
Registrado: Octobre 2009
Mensajes: 144
Edad: 58 Ubicación: Zaragoza
|
Re: Teclas Aceleradoras En Submenu
Me respondo, para que sirva a alguien.
He buscado en los fuentes de Gambas2, y en el diseñador de menus esta este codigo:
PRIVATE SUB LoadShortcut()
DIM iInd AS Integer
cmbShortcut.Add("(None)")
FOR iInd = Asc("A") TO Asc("Z")
cmbShortcut.Add(Chr$(iInd))
NEXT
FOR iInd = 1 TO 12
cmbShortcut.Add("F" & CStr(iInd))
NEXT
cmbShortcut.Add("Backspace")
cmbShortcut.Add("Del")
cmbShortcut.Add("Down")
cmbShortcut.Add("End")
cmbShortcut.Add("Enter")
cmbShortcut.Add("Esc")
cmbShortcut.Add("Home")
cmbShortcut.Add("Ins")
cmbShortcut.Add("Left")
cmbShortCut.Add("Pause")
cmbShortcut.Add("PgDown")
cmbShortcut.Add("PgUp")
cmbShortcut.Add("Return")
cmbShortcut.Add("Space")
cmbShortcut.Add("Right")
cmbShortcut.Add("Up")
END
Lo puedes encontrar en
/usr/src/gambas2-2.17.0/app/src/gambas2/FMenu.class
Tirando del hilo y haciendo pruebas, es tan sencillo como
PUBLIC SUB Form_Open()
DIM op AS Menu
DIM subop1 AS Menu
DIM subop2 AS Menu
DIM subop3 AS Menu
DIM subsep AS Menu
ME.Center
ME.Title = "Formulario de prueba para MENU"
op = NEW Menu(ME)
op.Caption = "&Navegacion"
subop1 = NEW Menu(op) AS "abrir"
subop1.Text = "&Abrir"
subop1.Shortcut = "F6"
subop2 = NEW Menu(op) AS "editar"
subop2.Text = "&Editar"
subop2.Shortcut = "F2"
subsep = NEW Menu(op) AS "sep"
subsep.Text = ""
subop3 = NEW Menu(op) AS "salir"
subop3.Text = "&Cerrar aplicacion"
subop3.Shortcut = "F3"
Label1.Caption = "No se ha pulsado todavia ninguna opcion del menu"
END
Si queremos usar combinaciones de teclas hay que usar 'Alt+ , 'Shift+ ,'Ctrl+ , y la tecla que queramos sin espacios entre el + y la tecla elegida.
En lugar que el anterior codigo encontramos la clase CMenu.class con este codigo:
PUBLIC SUB SetShortcut(sShortcut AS String)
DO
IF UCase(Left$(sShortcut, 5)) = "CTRL+" THEN
Ctrl = TRUE
sShortcut = Mid$(sShortcut, 6)
CONTINUE
ENDIF
IF UCase(Left$(sShortcut, 6)) = "SHIFT+" THEN
Shift = TRUE
sShortcut = Mid$(sShortcut, 7)
CONTINUE
ENDIF
IF UCase(Left$(sShortcut, 4)) = "ALT+" THEN
Alt = TRUE
sShortcut = Mid$(sShortcut, 5)
CONTINUE
ENDIF
Shortcut = sShortcut
RETURN
LOOP
END
No he probado todas las posibles teclas que se puedan ocurrir, no obstante es cuestion de acertar con el String adecuado. Las mas normales ya veis que son faciles.
Un saludo para todos.
|
#3 Sabado, 30 Enero 2010, 00:36 |
|
|
|
Temas parecidos
Temas parecidos
|
Página 1 de 1
|
Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado Usuarios registrados conectados: Ninguno
|
No puede crear mensajes No puede responder temas No puede editar sus mensajes No puede borrar sus mensajes No puede votar en encuestas No puede adjuntar archivos Puede descargar archivos No puede publicar eventos en el calendario
|
|
|
|
|