Delphi World - Автоматическое заполнение HTML-форм в браузере
Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Автоматическое заполнение HTML-форм в браузере

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

{ To test this code put a TWebBrowser and A TButton component on the form }


 function FillForm(WebBrowser: TWebBrowser; FieldName: string; Value: string): Boolean;
  var
    i, j: Integer;
    FormItem: Variant;
  begin
    Result := False;
    //no form on document  
  if WebBrowser.OleObject.Document.all.tags('FORM').Length = 0 then
    begin
      Exit;
    end;
    //count forms on document  
  for I := 0 to WebBrowser.OleObject.Document.forms.Length - 1 do
    begin
      FormItem := WebBrowser.OleObject.Document.forms.Item(I);
      for j := 0 to FormItem.Length - 1 do
      begin
        try
          //when the fieldname is found, try to fill out  
        if FormItem.Item(j).Name = FieldName then
          begin
            FormItem.Item(j).Value := Value;
            Result := True;
          end;
        except
          Exit;
        end;
      end;
    end;
  end;


  //When the document is complete try to fill out the field homepage with the url  
procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
    const pDisp: IDispatch; var URL: OleVariant);
  begin
    if FillForm(WebBrowser1, 'homepage', 'http://www.swissdelphicenter.ch') = False then
      ShowMessage('Error. Field not available or no Form found.');
 end;

 // Show the Webbrowser-Progress in Label1  
procedure TForm1.WebBrowser1ProgressChange(Sender: TObject; Progress, ProgressMax: Integer);
  begin
    if ProgressMax = 0 then
    begin
      label1.Caption := '';
      Exit;
    end;
    try
      if (Progress <> -1) and (Progress <= ProgressMax) then
        label1.Caption := IntToStr((Progress * 100) div ProgressMax) + '% loaded...'
      else
        label1.Caption := '';
    except
      on EDivByZero do Exit;
    end;
  end;


  //For example you can load the page /en/addtip.php to the TWebBrowser  
//When the document is Complete the form where you can put your homepage  
//address is filled out  
procedure TForm1.Button1Click(Sender: TObject);
  begin
    Webbrowser1.Navigate('http://www.swissdelphicenter.ch/en/addtip.php');
    // Show the Titel of the currently active Webpage in the titlebar  
  // Den Titel der aktuellen Webseite in der Titeleiste anzeigen  
  Caption := Webbrowser1.OleObject.Document.Title;
  end;
Проект Delphi World © Выпуск 2002 - 2017
Автор проекта: Эксклюзивные курсы программирования