Недавно добавленные исходники

•  Animation Loaders  699

•  DeLiKaTeS Tetris (Тетрис)  5 700

•  TDictionary Custom Sort  7 657

•  Fast Watermark Sources  7 348

•  3D Designer  10 555

•  Sik Screen Capture  7 874

•  Patch Maker  8 096

•  Айболит (remote control)  8 157

•  ListBox Drag & Drop  6 951

•  Доска для игры Реверси  100 172

•  Графические эффекты  8 220

•  Рисование по маске  7 613

•  Перетаскивание изображений  6 216

•  Canvas Drawing  6 583

•  Рисование Луны  6 509

•  Поворот изображения  5 684

•  Рисование стержней  4 606

•  Paint on Shape  3 302

•  Генератор кроссвордов  4 291

•  Головоломка Paletto  3 435

•  Теорема Монжа об окружностях  4 254

•  Пазл Numbrix  2 756

•  Заборы и коммивояжеры  3 660

•  Игра HIP  2 469

•  Игра Go (Го)  2 454

•  Симулятор лифта  2 861

•  Программа укладки плитки  2 297

•  Генератор лабиринта  3 021

•  Проверка числового ввода  2 523

•  HEX View  2 931

 
скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Delphi Sources

Активизировать клавишу возврата для TWebBrowser



Оформил: DeeCo

{ 
  Problem: 

  Web forms that have multi-line text boxes and/or Submit buttons do not 
  respond to the Enter key when displayed on a TWebbrowser. 
  Also when browsing local folders, some keys don't respond. 

  How to solve it: 
}

 unit Unit1;

 interface

 uses
   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
   Dialogs, OleCtrls, SHDocVw_TLB, ActiveX, StdCtrls;

 type
   TForm1 = class(TForm)
     WebBrowser1: TWebBrowser;
     Button1: TButton;
     Button2: TButton;
     procedure FormDestroy(Sender: TObject);
     procedure FormCreate(Sender: TObject);
     procedure Button1Click(Sender: TObject);
     procedure Button2Click(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}

 procedure TForm1.FormDestroy(Sender: TObject);
 begin
   FOleInPlaceActiveObject := nil;
 end;

 procedure TForm1.FormCreate(Sender: TObject);
 begin
   Application.OnMessage := MsgHandler;
 end;

 procedure TForm1.MsgHandler(var Msg: TMsg; var Handled: Boolean);
 const
   DialogKeys: set of Byte = [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)) and
         (Msg.wParam in DialogKeys) then
         // nothing - do not pass on the DialogKeys 
      else
         FOleInPlaceActiveObject.TranslateAccelerator(Msg);
   end;
 end;

 initialization
   OleInitialize(nil);

 finalization
   OleUninitialize;




Похожие по теме исходники

Нейросеть для распознавания образов

Механизм станка качалки для нефти

Весы для взвешивания

Кувшины для воды

 

Доска для игры Реверси




Copyright © 2004-2026 "Delphi Sources" by «SiteAnalyzer». Delphi World FAQ

Группа ВКонтакте