Ich muss zugeben, dass für mich Einhandbedienung und Strg+D für Drucken vereinbar erscheinen. Auch ist ein simples D als ShortCut kontraproduktiv, wenn alle anderen Anwendungen Strg+D verwenden, aberseisdrum. Unter Berücksichtigung deiner Anforderung würde ich das Problem so lösen:
Delphi-Quellcode:
// shortcut = D
procedure TDemoForm.PrintActionUpdate(Sender: TObject);
begin
with Sender as TAction do
Enabled := true // deine eigenen Bedingungen
and not (ActiveControl is TCustomEdit);
end;
Grüße vom marabu