скрыть

скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Google  
 

Автоматическое заполнение HTML-форм в браузере



Оформил: DeeCo

{ 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;





Copyright © 2004-2016 "Delphi Sources". Delphi World FAQ




Группа ВКонтакте   Ссылка на Twitter   Группа на Facebook