Как использовать клавишу-акселератор в TTabsheets?
Материал из DRKB
Как использовать клавишу-акселератор в TTabsheets?[править | править код]
Как использовать клавишу-акселератор в TTabsheets? Я добавляю клавишу-акселератор в заголовок каждого Tabsheet моего PageControl, но при попытке переключать страницы этой клавишей программа пикает и ничего не происходит.
Можно перехватить сообщение CM_DIALOGCHAR.
type
TForm1 = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
private
procedure CMDialogChar(var Msg: TCMDialogChar); message CM_DIALOGCHAR;
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.CMDialogChar(var Msg: TCMDialogChar);
var
i: integer;
begin
with PageControl1 do
begin
if Enabled then
for i := 0 to PageControl1.PageCount - 1 do
if ((IsAccel(Msg.CharCode, Pages[i].Caption)) and (Pages[i].TabVisible)) then
begin
Msg.Result := 1;
ActivePage := Pages[i];
exit;
end;
end;
inherited;
end;
DELPHI VCL FAQ Перевод с английского Подборку, перевод и адаптацию материала подготовил Aziz(JINX) специально для Королевства Дельфи
Source: Взято из
ID: 01160