javascript:self-close() TWebbrowse

Kuerbis

Grünschnabel
folgendes kleines Problem:

ich programmiere gerade mit der TWebbrowse-Komponente und
bekomme eine wilde Exception mit Totalabsturz, wenn auf der
Webseite ein JAVASCRIPT:SELF-CLOSE() ausgelöst wird.

Dazu ist zu erwähnen, dass ich folgende Message-Behandlung in das
Programm eingebaut habe:
sdsd
Code:
UNIT TEST;
...
type
  TMainForm = class(TForm)
    ...
  private
    FOleInPlaceActiveObject: IOleInPlaceActiveObject;
    procedure FindAddress;
    procedure HomePageRequest(var message: tmessage); message 
                                              CM_HOMEPAGEREQUEST;
    procedure MsgHandler(var Msg: TMsg; var Handled: Boolean);

....

procedure TMainForm.MsgHandler(var Msg: TMsg; var Handled: Boolean);
const
  DialogKeys: set of Byte = [VK_LEFT, VK_RIGHT, VK_BACK, $30..$39, $41..$5A];
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_LEFT) or (Msg.wParam = VK_RIGHT)) then
        //nothing - do not pass on Backspace, Left or Right arrows
      else
           FOleInPlaceActiveObject.TranslateAccelerator(Msg);
        except
        end;
  end;
end;

kann das damit zusammen hängen?
Oder, wer kennt den Wert von MSG.MESSAGE an dieser Stelle,
dann ich ich das ja umgehen.
 

Neue Beiträge

Zurück