Sorry: Das war ein Mißverständnis. Ich dachte, dieses Verhalten sei so von Dir gewollt.
Ja - das ist tatsächlich etwas merkwürdig. Das Problem tritt übrigens auch mit Delphi XE auf. Die Ursache liegt offenbar darin, daß in
TCustomTabControl.CMDialogChar nicht getestet wird, ob die Alt-Taste betätigt ist, sondern darauf vertraut wird, daß sich Windows schon etwas dabei denkt, wenn es diese Nachricht sendet. Und genau das geht hier schief.
Ich habe mal etwas getestet und eine Lösung gefunden (funktioniert zumindest bei mir):
Delphi-Quellcode:
type
TPageControl = class(ComCtrls.TPageControl)
private
procedure CMDialogChar(var Message: TCMDialogChar); message CM_DIALOGCHAR;
end;
TForm1 = class(TForm)
PageControl1: TPageControl;
[...]
end;
procedure TPageControl.CMDialogChar(var Message: TCMDialogChar);
begin
if GetKeyState(VK_MENU) and $8000<>0
then inherited;
end;