Ir al contenido


Foto

Problema con shorcuts en frames dentro de pagecontrol


  • Por favor identifícate para responder
4 respuestas en este tema

#1 Caminante21

Caminante21

    Member

  • Miembros
  • PipPip
  • 21 mensajes
  • LocationLima, Peru

Escrito 16 diciembre 2014 - 11:59

Hola a todos espero les este yendo mejor que ami que ya no se como resolver esto.
Estoy pasando una aplicación de MDI a TDI utilizando frames dentro de un pagecontrol. Ya tengo programada esta parte y los frames se muestran correctamente dentro de su pestaña.
Peeeero me di cuenta de un pequeño detalle y es que en cada frame (todos heredan de un frame base) tengo varios botones y a estos les asigno una tecla rapida (por ejemplo &Salir para usar Alt + S).
El problema es que al usar la combinacion (Alt + S como en el ejemplo) se ejecuta la accion pero no para el frame de la pestaña actual. Igual pasa con las demas combinaciones para los frames que tienen la misma tecla asignada se ejecuta el codigo pero no del frame activo. Es como si en alguna parte el shortcut se fuera hacia el frame equivocado y la verdad no entiendo porque.
Espero haber sido claro (A veces ni yo me entiendo ). Y me puedan ayudar a resolver este caso

Gracias por su atención...
  • 0

#2 Sergio

Sergio

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1.092 mensajes
  • LocationMurcia, España

Escrito 16 diciembre 2014 - 12:04

Me temo que no puedes tener el mismo shortcut asignado a dos cosas en el mismo form, al menos no "de fabrica".

Tienes dos opciones por lo que entiendo:

1) Al cambiar de frame desactivas todos los shortcuts excepto los del frame activo, para evitar duplicidades.

2) En el form poner previewkeys a true y capturas los eventos de teclado en el form, y los envias al frame activo, en lugar del comportamiento por defecto que seria pasarle la tecla a primero que encuentre con ese shortcut.

De lo segundo tengo codigo pero no a mano, si te atrancas en eso dimelo y te pego algo de codigo util.
  • 0

#3 Caminante21

Caminante21

    Member

  • Miembros
  • PipPip
  • 21 mensajes
  • LocationLima, Peru

Escrito 16 diciembre 2014 - 12:13

Hola y gracias por la respuesta
Ya me empezaba a imaginar que era algo como lo que me explicas. Es que al pensar tanto tiempo en MDI no cai en que aunque eran frames distintos estan contenidos en el pagecontrol que pertenece al mismo form.
Pense en lo que dices de capturar el evento del teclado. Pero no se como mandarlo al frame adecuado.  La verdad al llegar ahi tire la toalla y pedi ayuda..
  • 0

#4 genriquez

genriquez

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 539 mensajes
  • LocationCali, Colombia

Escrito 17 diciembre 2014 - 06:55

Hola

Es buena idea ir cambiando aplicaciones de MDI, aunque son muy buenas y me encantan, en firemonkey esta funcionalidad todavía no existe y aun más en móviles no se utilizan varios formularios como en Windows.

por otra parte para saber cual es el formulario activo basta con preguntar por la propiedad pagecontrol.ActivePage y listo, y utilizar los eventos del page para detectar el cambio de página y activar los controles necesarios.

Saludos.
  • 0

#5 Caminante21

Caminante21

    Member

  • Miembros
  • PipPip
  • 21 mensajes
  • LocationLima, Peru

Escrito 17 diciembre 2014 - 08:36

Hola. Asi es yo tambien estaba comodo con las aplicaciones mdi. Pero estoy intentando hacer pruebas con lazarus y ya que ahi seria complicado usar mdi quise probar con pestañas.
Los resolvi quitando los shorcuts y activandolos cuando una pagina pasaba a ser la activa.
Gracias a los dos.
  • 0




IP.Board spam blocked by CleanTalk.