With default Windows settings, accelerator keys are not meant to be shown on dialogs until the user presses the ALT key.
Delphi\'s TLabel
control
Sorry no code, but maybe a solution direction.
I see TWinControl using NotifyControls
to BroadCast a message to all contained controls. It is used to notify controls of changes in the Parent
* properties, for example
procedure TWinControl.CMShowHintChanged(var Message: TMessage);
begin
inherited;
NotifyControls(CM_PARENTSHOWHINTCHANGED);
end;
I guess what you could do is code a message handler on your form to get the WM_CHANGEUITSTATE and pass it on to all controls parented by the form, using either NotifyControls, or something similar that only passes it to containers and TLabels.
You then still need a way to have your TLabel's' react to that message. I guess (haven't looked into it) that you could either override (descendant or interceptor) the WndProc method and/or do something with FDefWndProc (protected property).
And you will have to cater for frames in forms in ...