Ver Mensaje Individual
  #2  
Antiguo 31-08-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Bueno, pues al parecer sí que es una limitación del TActionList.

Según me explicó Peter Below (de los grupos de noticias de Borland) el formulario activo es quien pasa el shortcut a los ActionList que contenga de manera que si un ActionList reside en un DataModule nunca recibe el shortcut.

La solución entonces es pasárselo uno mismo. Con un objeto TApplicationEvents usamos el evento OnShortcut como sigue:

Código Delphi [-]
procedure TDataModule2.ApplicationEvents1ShortCut(
  var Msg: TWMKey; var Handled: Boolean
);
begin
  Handled := ActionList1.IsShortCut(Msg)
end;

Y listo, con esto las acciones se invocarán desde cualquier lugar de la aplicación.

// Saludos
Responder Con Cita