procedure HandleAppMessage(var Msg: TMsg; var Handled: Boolean);
// \83u\83\89\83E\83U\82Ì\83L\81[\83_\83E\83\93\83C\83x\83\93\83g
// \83C\83x\83\93\83g\82ð\8eæ\82è\88µ\82Á\82½\8fê\8d\87\82Í True \82ð\95Ô\82·
- procedure BrowserKeydown(Sender: TObject; Key: Word; State:TShiftState);
+ function BrowserKeydown(Sender: TObject; Key: Word; State:TShiftState) : Boolean;
protected
procedure CreateParams(var Params: TCreateParams); override;
// \83u\83\89\83E\83U\82Ì\83L\81[\83_\83E\83\93\83C\83x\83\93\83g
// \83C\83x\83\93\83g\82ð\8eæ\82è\88µ\82Á\82½\8fê\8d\87\82Í True \82ð\95Ô\82·
-procedure TGikoForm.BrowserKeydown(Sender: TObject; Key: Word; State:TShiftState);
+function TGikoForm.BrowserKeydown(Sender: TObject; Key: Word; State:TShiftState) : Boolean;
begin
- if Key = VK_BACK then
+ if Key = VK_BACK then begin
UpBoardAction.Execute;
+ Result := True;
+ end else begin
+ Result := (Key in [VK_ESCAPE..VK_HELP]);
+ end;
end;
// \83M\83R\83i\83r\82Ì\83\81\83b\83Z\81[\83W\83\8b\81[\83v\82ð\89¡\8eæ\82è\82µ\82Ü\82·
procedure TGikoForm.HandleAppMessage(var Msg: TMsg; var Handled: Boolean);
var
- key : Word;
+ key : Word;
+ iOIPAO : IOleInPlaceActiveObject;
+ Dispatch : IDispatch;
begin
case Msg.message of
- WM_KEYFIRST..WM_KEYLAST:
+ WM_KEYDOWN:
if IsDialogMessage( Browser.Handle, Msg ) then begin
- Handled := True;
key := Msg.wParam;
- BrowserKeyDown( nil, key, KeyDataToShiftState( Msg.lParam ) );
+ Handled := BrowserKeyDown( nil, key, KeyDataToShiftState( Msg.lParam ) );
+ if not Handled then begin
+ Dispatch := Browser.Application;
+ if Dispatch <> nil then
+ Dispatch.QueryInterface( IOleInPlaceActiveObject, iOIPAO );
+ if iOIPAO <> nil then
+ iOIPAO.TranslateAccelerator( Msg );
+ end;
Msg.wParam := key;
+ Handled := True;
end;
WM_XBUTTONDOWN:
case Msg.wParam shr 16 of