Главная страница | назад





Article #17012: Adding accelerator characters to TTabsheets

 Question and Answer Database
FAQ2012D.txt Adding accelerator characters to TTabsheets
Category :VCL
Platform :All
Product :All 32 bit
Question:
How can I make an accelerator character work for a Tabsheet?
I put accelerator characters in the captions for each Tabsheet of a
PageControl, but when I try to tab the pages using accelerator key,
it beeps and does nothing.
Answer:
The following example demonstrates trapping the CM_DIALOGCHAR
message to surface the accelerator messages for the tab sheets of
a PageControl.
Example:
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;
7/16/98 4:31:28 PM

Last Modified: 01-SEP-99