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