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