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

•  DeLiKaTeS Tetris (Тетрис)  4 069

•  TDictionary Custom Sort  6 169

•  Fast Watermark Sources  5 964

•  3D Designer  8 847

•  Sik Screen Capture  6 308

•  Patch Maker  6 719

•  Айболит (remote control)  6 713

•  ListBox Drag & Drop  5 571

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

•  Графические эффекты  6 934

•  Рисование по маске  6 179

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

•  Canvas Drawing  5 470

•  Рисование Луны  5 181

•  Поворот изображения  4 722

•  Рисование стержней  3 336

•  Paint on Shape  2 575

•  Генератор кроссвордов  3 474

•  Головоломка Paletto  2 773

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

•  Пазл Numbrix  2 344

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

•  Игра HIP  1 984

•  Игра Go (Го)  1 906

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

•  Программа укладки плитки  1 970

•  Генератор лабиринта  2 423

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

•  HEX View  2 429

•  Физический маятник  2 058

 
скрыть

  Форум  

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-2025 "Delphi Sources" by BrokenByte Software. Delphi World FAQ

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