unit SpecKey; interface uses Windows, Messages, SysUtils, Classes, Graphics, Buttons, Controls, Forms, Dialogs, StdCtrls; type TAccSpeed = class(TSpeedButton) private fAccKey: char; protected procedure CMDialogChar(var Message: TCMDialogChar); message CM_DIALOGCHAR; published property AccKey: char read fAccKey write fAccKey; end; TTabEdit = class(TEdit) protected procedure CMDialogKey(var Message: TCMDialogKey); message CM_DIALOGKEY; end; procedure Register; implementation procedure TAccSpeed.CMDialogChar(var Message: TCMDialogChar); begin if (Message.CharCode = Word(fAccKey)) and Enabled then begin Click; Message.Result := 1; end else inherited; end; procedure TTabEdit.CMDialogKey(var Message: TCMDialogKey); begin if (Message.CharCode = VK_RETURN) and Enabled then begin GetParentForm (self).Perform (CM_DialogKey, VK_TAB, 0); Message.Result := 1; end else inherited; end; {registration procedure} procedure Register; begin RegisterComponents ('DDHB', [ TAccSpeed, TTabEdit]); end; end.