Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.02.2011, 20:12   #1
Delphinchik
Пользователь
 
Регистрация: 10.08.2010
Сообщений: 60
По умолчанию Включить VK_RETURN

Привет, есть вот такой код:

Код:
unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, OleCtrls, SHDocVw, ActiveX, AppEvnts, ExtCtrls;
type
  TForm1 = class(TForm)
    WebBrowser1: TWebBrowser;
    Timer1: TTimer;
    Timer2: TTimer;
    procedure FormCreate(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure Timer2Timer(Sender: TObject);
  private
    { Private declarations }

         FOleInPlaceActiveObject: IOleInPlaceActiveObject;
     procedure MsgHandler(var Msg: TMsg; var Handled: Boolean);
     
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
implementation
{$R *.dfm}
{$R TestRes3.RES}
procedure TForm1.FormCreate(Sender: TObject);
begin
Self.WebBrowser1.Navigate('res://'+Application.Exename+'/HTML/page');

   Application.OnMessage := MsgHandler;

end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
form1.Close;
end;
procedure TForm1.Timer2Timer(Sender: TObject);
begin
form1.height:=975;
form1.width:=1285;
Timer2.Enabled:=false;
end;

 procedure TForm1.MsgHandler(var Msg: TMsg; var Handled: Boolean);
 const
   DialogKeys: set of Byte = [VK_RETURN, VK_LEFT, VK_RIGHT, VK_BACK, VK_UP, VK_DOWN,
     $30..$39, $41..42, $44..$55, $57, $59..$5A];
 var
   iOIPAO: IOleInPlaceActiveObject;
   Dispatch: IDispatch;
 begin
   { exit if we don't get back a webbrowser object }
   if (WebBrowser1 = nil) then
   begin
     Handled := System.False;
     Exit;
   end;

   Handled := (IsDialogMessage(WebBrowser1.Handle, Msg) = System.True);

   if (Handled) and (not WebBrowser1.Busy) then
   begin
     if FOleInPlaceActiveObject = nil then
     begin
       Dispatch := WebBrowser1.Application;
       if Dispatch <> nil then
       begin
         Dispatch.QueryInterface(IOleInPlaceActiveObject, iOIPAO);
         if iOIPAO <> nil then
           FOleInPlaceActiveObject := iOIPAO;
       end;
     end;

     if FOleInPlaceActiveObject <> nil then
       if ((Msg.message = WM_KEYDOWN) or (Msg.message = WM_KEYUP) or (Msg.message = VK_RETURN)) and
         (Msg.wParam in DialogKeys) then
         // nothing - do not pass on the DialogKeys 
      else
         FOleInPlaceActiveObject.TranslateAccelerator(Msg);
   end;
 end;

 initialization
   OleInitialize(nil);
 finalization
   OleUninitialize;

end.
По не понятным мне причинам не работает кнопка ENTER (VK_RETURN) в WebBrowser, до этого работала, но когда попытался включить VK_BACK, backspace - заработал а enter заглох

как включить enter не выключая backspace

Последний раз редактировалось Delphinchik; 14.02.2011 в 20:20.
Delphinchik вне форума Ответить с цитированием
Старый 14.02.2011, 20:27   #2
asmodey1
Подтвердите свой е-майл
 
Регистрация: 19.12.2010
Сообщений: 808
По умолчанию

Это вот зачем вообще ???
Код:
 if ((Msg.message = WM_KEYDOWN) or (Msg.message = WM_KEYUP) or (Msg.message = VK_RETURN)) and
Как насчет разницы между событием и виртуальным кодом клавиши ?
asmodey1 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Включить XP Style в MFC ds.Dante Visual C++ 5 10.03.2012 14:25
Включить длл в ехе MAcK Общие вопросы Delphi 6 25.08.2010 13:26
Нужно включить программу! Kengie Помощь студентам 1 21.07.2010 15:18
макросы где включить ЦЕРЦЕЯ Microsoft Office Excel 2 19.04.2010 16:04
Включить HotKeyManager Михаил Юрьевич Общие вопросы Delphi 4 08.04.2009 16:59