Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.04.01;
Скачать: CL | DM;

Вниз

Как возврат каретки заставить ввестись при работе с TWebBrowser   Найти похожие ветки 

 
ANB ©   (2007-03-13 15:45) [0]

Никак не докопаюсь - задаю вопросы в этом форуме через делфовый TWebBrowser. Однако в окошках редактирование нагло игнорится нажатие кнопки Enter и я не могу принудительно начать новую строку. Как это зачинить можно ?


 
Desdechado ©   (2007-03-13 15:59) [1]

Многострочный Edit сделай


 
easy ©   (2007-03-13 16:23) [2]

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, OleCtrls, SHDocVw,activex;

type
 TForm1 = class(TForm)
   WebBrowser1: TWebBrowser;
   procedure FormCreate(Sender: TObject);
   procedure FormActivate(Sender: TObject);
   procedure FormDeactivate(Sender: TObject);
   procedure FormClose(Sender: TObject; var Action: TCloseAction);
 private
   { Private declarations }
   FOleInPlaceActiveObject: IOleInPlaceActiveObject;
   SaveMessageHandler: TMessageEvent;
   procedure MyMessageHandler(var Msg: TMsg; var Handled: Boolean);
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
 WebBrowser1.Navigate("http://ya.ru");
end;

procedure TForm1.FormActivate(Sender: TObject);
begin
 SaveMessageHandler := Application.OnMessage;
 Application.OnMessage := MyMessageHandler;
end;

procedure TForm1.FormDeactivate(Sender: TObject);
begin
 Application.OnMessage := SaveMessageHandler;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 Application.OnMessage := SaveMessageHandler;
 FOleInPlaceActiveObject := nil;
end;

procedure TForm1.MyMessageHandler(var Msg: TMsg; var Handled: Boolean);
var
 iOIPAO: IOleInPlaceActiveObject;
 Dispatch: IDispatch;
begin
 { exit if we don"t get back a webbrowser object }
 if WebBrowser1 = nil then
 begin
   Handled := False;
   Exit;
 end;

 Handled:=(IsDialogMessage(WebBrowser1.Handle, Msg) = 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 = VK_BACK) or (Msg.wParam = VK_LEFT) or (Msg.wParam = VK_RIGHT)) then
       //nothing - do not pass on Backspace, Left or Right arrows
     else
       FOleInPlaceActiveObject.TranslateAccelerator(Msg);
 end;
end;

end.


 
ANB ©   (2007-03-13 16:53) [3]


> easy ©   (13.03.07 16:23) [2]


Все понятно. Перехват и насильное проталкивание кнопок броузеру.
Спасибо.

А почему так происходило - подскажите кто-нибудь ?



Страницы: 1 вся ветка

Текущий архив: 2007.04.01;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.048 c
2-1173549871
Washington
2007-03-10 21:04
2007.04.01
Создание объектов


6-1161189629
AlCache
2006-10-18 20:40
2007.04.01
Бот для HTML-чата


1-1170747105
Kolan
2007-02-06 10:31
2007.04.01
Как зоблокировать TChart на время рисвания на нем?


2-1173776010
Эшили
2007-03-13 11:53
2007.04.01
Самодельный Web-brouser


15-1173621847
прог-ист
2007-03-11 17:04
2007.04.01
кодировка