Показать сообщение отдельно
  #1  
Старый 23.03.2014, 12:20
Limonfife Limonfife вне форума
Прохожий
 
Регистрация: 23.03.2014
Сообщения: 1
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Помогите найти ошибку. Где-то у меня несоответствие типов

Доброго времени суток всем! Помогите, пожалуйста, исправить ошибку:

Код:
   private
  procedure AvtoClick;
  procedure AvtoPoisk;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
   Round: integer;
implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  ewb1.Navigate(edt5.Text);
  Round:= 1;
end;

procedure TForm1.btn1Click(Sender: TObject);
begin
  ewb1.Navigate(edt1.Text);
end;

procedure TForm1.AvtoClick;
var
 i: integer;
 s, mylink: string;
begin
     while ewb1.ReadyState < READYSTATE_COMPLETE do
        Application.ProcessMessages;
  for i := 0 to ewb1.OleObject.Document.links.Length - 1 do
       begin
        s:=ewb1.OleObject.Document.links.Item(i).InnerText;
          if s='Жми тут' then
           begin
            mylink := ewb1.OleObject.Document.links.Item(I);
            ewb1.Navigate(mylink);
            end;
       end;
end;

procedure TForm1.AvtoPoisk;
var
  
  htmlDoc: IHTMLDocument2;
  allLinks: IHTMLElementCollection;
  firstLink: IHTMLElement;
   url :string;
begin
     while ewb1.ReadyState < READYSTATE_COMPLETE do
        Application.ProcessMessages;
    htmlDoc := ewb1.Document as IHTMLDocument2;
  allLinks := htmlDoc.Links;
  firstLink := allLinks.Item(8,'') as IHTMLElement;
    url := firstLink.toString;
      ewb1.Navigate(url);//Вот здесь выскакивает ошибка:  Could not convert variant of type(Dispatch) into type (String)
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
 if Round < strtoint(edt2.text) then
  begin
    inc(Round);
    ewb1.Navigate(edt1.Text);
    AvtoPoisk;
    AvtoClick;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 Timer1.Interval:= strtoint(edt3.text)*1000;
 Timer1.Enabled:= True;
end;
Ответить с цитированием