Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-05-2008
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Question Por fin una de novato: como capturo teclado como con TMainMenu

Ok, estoy haciendo una pequeña utilidad y jugando con una idea. En fin.

Tengo un TActionList, y en una aplicacion normal, uno haria un TMenu y le jala las acciones al menu.

Pero en esta utildad no hay ni menu ni barra de herramientas, todo es teclado y ya. Asi que me pregunto como hacer para capturar los comandos y mapearlos al TActionList sin hacer un monstruoso codigo en el KeyUp con todos los comandos?

Porque pa' rematar, la lista de comandos cambiaria entre idiomas (quizas lo libere en ingles & español) asi que quiero es dejar todo en un TActionList.

Osea que estoy buscando un componente que emule el comportamiento del menu y/o una forma generica de hacer lo mismo sino existe.
__________________
El malabarista.
Responder Con Cita
  #2  
Antiguo 08-05-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
¿Qué para eso no está la propiedad ShortCut de los TAction?

// Saludos
Responder Con Cita
  #3  
Antiguo 08-05-2008
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Si, eso lo se.

Haz esta prueba pa' que me entiendas.

Pon un TActionList en un Form sin menu. Le pones los shorcuts a los TAction. Corres la forma y haces lo comandos de teclado. Obviamente no son capturados....
__________________
El malabarista.
Responder Con Cita
  #4  
Antiguo 08-05-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Ok. Ya hice la prueba:

Código:
Action1
  ShortCut: Ctr+A
  OnExecute: ShowMessage('Hola mundo');
En el formulario no hay nada más.

Ejecuto, oprimo Ctrl+A y recibo el mensaje.

Algo en tu formulario debe estar interceptando la acción; las acciones no depende de menús ni nada por el estilo.

// Saludos
Responder Con Cita
  #5  
Antiguo 08-05-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Mario:

¿No será que tienes el ActionList fuera del formulario?

Hace tiempo tuve esa duda porque si colocas el ActionList en un DataModule, los ShortCuts no son detectados por el formulario. Hice la pregunta en los foros de Borland y esto es lo que me sugirió Peter Below:

Código Delphi [-]
interface

type
  TForm1 = class(TForm)
  protected
    function IsShortCut(var Message: TWMKey): Boolean; override;
  end;

implementation

function TForm1.IsShortCut(var Message: TWMKey): Boolean;
begin
  Result := inherited IsShortCut(Message);
  if not Result then
    Result := DataModule2.ActionList1.IsShortCut(Message);
end;

Viendo el código original de IsShortCut, es sencillo deducir el porqué del problema y porqué la solución propuesta funciona.

// Saludos
Responder Con Cita
  #6  
Antiguo 09-05-2008
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Dentro.

Probé el ejemplo de roman y funciona correctamente. Y el ActionList definitivamente, esta dentro del Form.
Responder Con Cita
  #7  
Antiguo 09-05-2008
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Excelente Roman.

Te dedico esta cancion:

http://www.youtube.com/watch?v=KVKDQgT_b-Y

__________________
El malabarista.
Responder Con Cita
  #8  
Antiguo 12-05-2008
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
Lo siento, pero no puedo evitarlo:
Cita:
Empezado por mamcx
Por fin una de novato
¡Enhorabuena! ¿A que no fue tan difícil?
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
Respuesta



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
Como capturo una Except en particular? danytorres Varios 7 26-07-2008 18:08:06
Como unir un tMainMenu con varios. ErenioDhG Internet 4 14-11-2006 21:23:34
Como capturo el tamaño de un directorio JOSE NARANJO API de Windows 9 30-11-2005 17:47:33
como capturo el evento del Scroll fmonte Varios 1 09-11-2004 21:22:06
como capturo error redlyon13 Varios 3 05-06-2004 06:24:04


La franja horaria es GMT +2. Ahora son las 04:24:25.


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