На главную
Подписка
Новости


Рейтинг@Mail.ru











Главная / DELPHI / Часто задаваемые вопросы и ответы на них / Компоненты / Как использовать клавишу-акселератор в TTabsheets? Я добавляю клавишу-акселератор в заголовок каждого Tabsheet моего PageControl, но при попытке переключать страницы этой клавишей программа пикает и ничего не происходит. Сделать домашней страницей Добавить в избранное Написать писмо

Как использовать клавишу-акселератор в TTabsheets? Я добавляю клавишу-акселератор в заголовок каждого Tabsheet моего PageControl, но при попытке переключать страницы этой клавишей программа пикает и ничего не происходит.


Можно перехватить сообщение CM_DIALOGCHAR.
Пример:

type
   TForm1 = class(TForm)
       PageControl1: TPageControl;
       TabSheet1: TTabSheet;
       TabSheet2: TTabSheet;
       TabSheet3: TTabSheet;
   private
       {Private declarations}
       procedure CMDialogChar(var Msg:TCMDialogChar);
       message CM_DIALOGCHAR;
   public
       {Public declarations}
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;


Источник: Дельфи. Вокруг да около.


Copyright ©   "Мастера DELPHI"   E-mail:   delphi@mastak.com  http://www.delphimaster.ru
Источник получения информации: http://www.delphimaster.ru
Hosted by uCoz