| |
| Adding accelerator characters to TTabsheets |
 |
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.
The following example demonstrates trapping the CM_DIALOGCHAR message to surface the accelerator messages for the tab sheets of a PageControl.
Example:
type
TForm = class(TForm)
PageControl : TPageControl;
TabSheet : TTabSheet;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
private
{ Private declarations }
procedure CMDialogChar(var Msg:TCMDialogChar);
message CM_DIALOGCHAR;
public
{ Public declarations }
end;var
Form : TForm ; implementation {$R *.DFM} procedure TForm .CMDialogChar(var Msg:TCMDialogChar);
var
i:Integer;
begin
with PageControl do begin
if Enabled then
for i := 0 to PageControl .PageCount - do
if ((IsAccel(Msg.CharCode, Pages[i].Caption)) and
(Pages[i].TabVisible)) then begin
Msg.Result:= ;
ActivePage := Pages[i];
exit;
end;
end;
inherited;
end;
|
|
| Hits/month |
2,500,000+ |
Downloads (Since May 2000) |
7,393,709 |
| Total Files |
6,023 |
| Forum msgs |
7,670 |
| Articles/FAQs |
70+/900+ |
Top Selling Software at Amazon
|