Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-12-2014
Avatar de Caminante
Caminante Caminante is offline
Miembro
 
Registrado: oct 2010
Ubicación: Lima - Peru
Posts: 338
Poder: 14
Caminante Va camino a la fama
Problema con shorcuts en frames dentro de pagecontrol

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...
__________________
Caminante, son tus huellas el camino y nada más; Caminante, no hay camino, se hace camino al andar.
Antonio Machado
Responder Con Cita
  #2  
Antiguo 17-12-2014
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Puede que me equivoque, pero creo que los "short-cuts" se procesan según el orden de los componentes. Es decir, que va siguiendo la lista de componentes contenidos en el TForm (siendo el propio TForm el primero de ellos) hasta que que uno de ellos le dice que lo ha procesado.

Una solución: que los short-cuts sean gestionados por el TForm, no por los TFrames. Cuando el TForm recibe el evento, comprueba cuál es la página activa y llama al método correspondiente del TFrame que contenga.

Encontrar el TFrame correspondiente a la lengüeta no siempre es fácil. Yo uso el siguiente método en uno de mis proyectos secretos (a ver cuándo hablo de él ) que devuelve el TFrame correcto:
Código Delphi [-]
(* Devuelve el TFrame de la lengüeta indicada. *)
  FUNCTION TVntPrincipal.TomaFrameLengueta (CONST Lengueta: TTabSheet): TFrame;
  VAR
    Ndx: INTEGER;
  BEGIN
    FOR Ndx := Lengueta.ComponentCount - 1 DOWNTO 0 DO
      IF Lengueta.Components[Ndx] IS TFrame THEN
        EXIT (TFrame (Lengueta.Components[Ndx]));
    RAISE Exception.Create ('No encontró el TFrame de la lengüeta.')
  END;
Dos detalles:

Primero, que este código lo uso en Lazarus, puede que haya que cambiar algún detalle en Delphi.
Segundo, el RTTI ha de estar activo, evidentemente, para poder usar el operador "IS".
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #3  
Antiguo 17-12-2014
Avatar de Caminante
Caminante Caminante is offline
Miembro
 
Registrado: oct 2010
Ubicación: Lima - Peru
Posts: 338
Poder: 14
Caminante Va camino a la fama
Hola y gracias por la idea voy a hacer algunas pruebas con ello.
AL final lo resolvi desctivando los shortcuts y activandolos solo para el frame activo.

Gracias por todo.
__________________
Caminante, son tus huellas el camino y nada más; Caminante, no hay camino, se hace camino al andar.
Antonio Machado
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Frames dentro de ControlPages jars OOP 15 06-03-2013 21:48:53
Problema PageControl waremovil C++ Builder 8 15-09-2007 00:37:38
problema con frames en c++ SiempreNovato C++ Builder 7 29-05-2007 00:19:37
Problema al heredar frames choty Varios 5 21-06-2006 18:03:47
CONTROL+TAB en PAGECONTROL dentro de MDI-CHILD amadis OOP 2 11-08-2005 09:09:40


La franja horaria es GMT +2. Ahora son las 12:50:38.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi