недостаточно фактических параметров? - PullRequest
0 голосов
/ 23 мая 2010

Следующая программа возвращает error : e2035 not enough actual parameters в 2 местах (строки 39 и 45) и не компилируется. Может кто-нибудь помочь мне? Могу ли я поставить 0 или ноль вместо параметров здесь?

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,ComObj,shdocvw,activex, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
  var
   mybrowser : iwebbrowser2;
  myUserName,
myPassword,loginURL : string;
    Flags: OleVariant;

begin
    Flags :=  navOpenInNewWindow;
     MyBrowser := CreateOleObject('InternetExplorer.Application') as IWebBrowser2;
MyBrowser.Navigate('http://www.gmail.com',flags,'_blank');

myUserName := 'UserName';
myPassword := 'password';
loginURL:='javascript:var Email = document.getElementById(''Email'');Email.value=''' + myUserName + ''';var Password = document.getElementById(''Passwd'');Password.value=''' + myPassword + ''';var SignIn = document.getElementById(''signIn'');SignIn.click();';

MyBrowser.Navigate(loginURL);

end;

end.

Ответы [ 3 ]

5 голосов
/ 23 мая 2010

Вы можете использовать любую фиктивную переменную или переменную "EmptyParam" для вариантов. Pas;

MyBrowser.Navigate(loginURL,0,EmptyParam,EmptyParam,EmptyParam);
2 голосов
/ 23 мая 2010

Используйте TWebBrowser или передайте EmptyParam как в (источник Delphi) SHDocVw.pas:

procedure TWebBrowser.Navigate(const URL: WideString);
begin
  DefaultInterface.Navigate(URL, EmptyParam, EmptyParam, EmptyParam, EmptyParam);
end;

procedure TWebBrowser.Navigate(const URL: WideString; const Flags: OleVariant);
begin
  DefaultInterface.Navigate(URL, Flags, EmptyParam, EmptyParam, EmptyParam);
end;

procedure TWebBrowser.Navigate(const URL: WideString; const Flags: OleVariant;
                               const TargetFrameName: OleVariant);
begin
  DefaultInterface.Navigate(URL, Flags, TargetFrameName, EmptyParam, EmptyParam);
end;

procedure TWebBrowser.Navigate(const URL: WideString; const Flags: OleVariant;
                               const TargetFrameName: OleVariant; var PostData: OleVariant);
begin
  DefaultInterface.Navigate(URL, Flags, TargetFrameName, PostData, EmptyParam);
end;

procedure TWebBrowser.Navigate(const URL: WideString; const Flags: OleVariant;
                               const TargetFrameName: OleVariant; var PostData: OleVariant;
                               const Headers: OleVariant);
begin
  DefaultInterface.Navigate(URL, Flags, TargetFrameName, PostData, Headers);
end;
2 голосов
/ 23 мая 2010

Подпись Navigate -

    procedure Navigate(const URL: WideString; const Flags: OleVariant;
                   const TargetFrameName: OleVariant; var PostData: OleVariant;
                   const Headers: OleVariant); safecall;

так что вам нужно больше параметров. Официальную документацию по MSDN см. MSDN .

.

Вы можете написать

var
  PostData: OleVariant;

PostData := 0;
MyBrowser.Navigate('http://www.gmail.com',flags,'_blank', PostData, 0);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...