Как организовать поиск в TWebBrowser при помощи FindDialog

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Ответить
punisher
Сообщения: 1
Зарегистрирован: 19 апр 2010, 22:52

Как организовать поиск в TWebBrowser при помощи FindDialog?
(Можно код, плз)
Shouldercannon
Сообщения: 74
Зарегистрирован: 08 июн 2008, 15:49

Код: Выделить всё

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, OleCtrls, SHDocVw, StdCtrls, ExtCtrls, MSHTML, ActiveX;

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    WebBrowser1: TWebBrowser;
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
    function InvokeCMD(WB: TWebbrowser; nCmdID: DWORD): Boolean; overload;
    function InvokeCMD(WB: TWebbrowser; InvokeIE: Boolean; Value1, Value2: Integer; var vaIn, vaOut: OleVariant): Boolean; overload;
  public
    { Public declarations }
  end;

const
  CGID_WebBrowser: TGUID = '{ED016940-BD5B-11cf-BA4E-00C04FD70816}';

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
vaIn, vaOut: OleVariant;
begin
InvokeCMD(WebBrowser1, 1);
end;

function TForm1.InvokeCMD(WB: TWebbrowser; nCmdID: DWORD): Boolean;
var
vaIn, vaOut: OleVariant;
begin
Result := InvokeCMD(WB, True, nCmdID, 0{unassigned}, vaIn, vaOut);
end;

function TForm1.InvokeCMD(WB: TWebbrowser; InvokeIE: Boolean; Value1,
  Value2: Integer; var vaIn, vaOut: OleVariant): Boolean;
var
CmdTarget: IOleCommandTarget;
PtrGUID: PGUID;
begin
New(PtrGUID);
  if InvokeIE then
    PtrGUID^ := CGID_WebBrowser
      else
        PtrGuid := PGUID(nil);
          if WB.Document <> nil then
            try
              WB.Document.QueryInterface(IOleCommandTarget, CmdTarget);
                if CmdTarget <> nil then
                  try
                    CmdTarget.Exec(PtrGuid, Value1, Value2, vaIn, vaOut);
                  finally
                    CmdTarget._Release;
                  end;
            except
            end;
Dispose(PtrGUID);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
WebBrowser1.Navigate('http://programmersforum.ru');
end;

end.
Ответить