Главная страница
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.052 c
15-1172676302
Rule
2007-02-28 18:25
2007.04.01
кто может помочь с оформлением кредита в Москве


2-1173450839
Влад
2007-03-09 17:33
2007.04.01
Алгоритм кодирование бинарника в строку


15-1172871781
Алхимик
2007-03-03 00:43
2007.04.01
Анатолий Погорецкий - робот!


3-1168581753
Сергей И
2007-01-12 09:02
2007.04.01
Сортировка записей


2-1173294612
Василиус
2007-03-07 22:10
2007.04.01
Здравствуйте Умельцы!!!