Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Meherere Submits in einer Procedure mit TWebBrowser (https://www.delphipraxis.net/65902-meherere-submits-einer-procedure-mit-twebbrowser.html)

Andi1982ka 22. Mär 2006 06:07


Meherere Submits in einer Procedure mit TWebBrowser
 
Hallo zusammen,

ich hatte zuerst recht lange gebraucht bis ich es endlich hin bekommen habe ein Formular das im TWebBrowser angezeigt wurde auszufüllen. Dann habe ich es sogar geschaft das ganze formular zu submitten. Nach dem Submit kommt man aber auf eine andere Seite auf der man ebenfalls noch ein Formular abschicken muss!

Wenn ich es so mache geht es wunderbar:

Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
var
  Webform : variant ;
begin
  // erstes Formular abschicken
    WebBrowser1.OleObject.Document.Frames.item('MAIN').Document.Forms.item('units').Elements.item('spear').value := Edit4.Text;
    WebBrowser1.OleObject.Document.Frames.item('MAIN').Document.Forms.item('units').Elements.item('sword').value := Edit5.Text;
    WebBrowser1.OleObject.Document.Frames.item('MAIN').Document.Forms.item('units').Elements.item('axe').value := Edit6.Text;
    WebBrowser1.OleObject.Document.Frames.item('MAIN').Document.Forms.item('units').Elements.item('spy').value := Edit7.Text;
    WebBrowser1.OleObject.Document.Frames.item('MAIN').Document.Forms.item('units').Elements.item('light').value := Edit8.Text;
    WebBrowser1.OleObject.Document.Frames.item('MAIN').Document.Forms.item('units').Elements.item('heavy').value := Edit9.Text;
    WebBrowser1.OleObject.Document.Frames.item('MAIN').Document.Forms.item('units').Elements.item('ram').value := Edit10.Text;
    WebBrowser1.OleObject.Document.Frames.item('MAIN').Document.Forms.item('units').Elements.item('catapult').value := Edit11.Text;
    WebBrowser1.OleObject.Document.Frames.item('MAIN').Document.Forms.item('units').Elements.item('snob').value := Edit12.Text;

//Submit des forumulars
    WebBrowser1.OleObject.Document.Frames.item('MAIN').Document.Forms.item('units').Elements.item('attack').click;
end;

 
procedure TForm1.Button4Click(Sender: TObject);
begin
    WebBrowser1.OleObject.Document.Frames.item('MAIN').Document.Forms.item(0).Elements.item('submit').click;
end;
Hier muss ich zuerst Button3 anklicken und danach Button4. Ich hätte das aber gerne alles in einem button. Da dachte ich das geht einfach indem ich nach dem abschicken des ersten formulars auf den Browser warte und dann gleich den Submit das nächste abschicke. Aber dann bekomme ich einen Programmabbruch. Das ganze geht nur wenn ich es auf zwei buttons verteile.

So bricht ab:

Delphi-Quellcode:
procedure TForm1.Button5Click(Sender: TObject);
begin
//Erstes Formular:
    WebBrowser1.OleObject.Document.Frames.item('MAIN').Document.Forms.item('units').Elements.item('spear').value := Edit4.Text;
    WebBrowser1.OleObject.Document.Frames.item('MAIN').Document.Forms.item('units').Elements.item('sword').value := Edit5.Text;
    WebBrowser1.OleObject.Document.Frames.item('MAIN').Document.Forms.item('units').Elements.item('axe').value := Edit6.Text;
    WebBrowser1.OleObject.Document.Frames.item('MAIN').Document.Forms.item('units').Elements.item('spy').value := Edit7.Text;
    WebBrowser1.OleObject.Document.Frames.item('MAIN').Document.Forms.item('units').Elements.item('light').value := Edit8.Text;
    WebBrowser1.OleObject.Document.Frames.item('MAIN').Document.Forms.item('units').Elements.item('heavy').value := Edit9.Text;
    WebBrowser1.OleObject.Document.Frames.item('MAIN').Document.Forms.item('units').Elements.item('ram').value := Edit10.Text;
    WebBrowser1.OleObject.Document.Frames.item('MAIN').Document.Forms.item('units').Elements.item('catapult').value := Edit11.Text;
    WebBrowser1.OleObject.Document.Frames.item('MAIN').Document.Forms.item('units').Elements.item('snob').value := Edit12.Text;
    WebBrowser1.OleObject.Document.Frames.item('MAIN').Document.Forms.item('units').Elements.item('attack').click;

 
//Pause  
    WaitBrowser(WebBrowser1);
//Zweites forumular:
    WebBrowser1.OleObject.Document.Frames.item('MAIN').Document.Forms.item(0).Elements.item('submit').click;
end;

 
.
.
.

 
procedure TForm1.WaitBrowser(eWebBrowser: TWebBrowser);
begin
  Repeat
    Sleep(50);
    Application.ProcessMessages;
  Until (eWebBrowser.ReadyState = READYSTATE_COMPLETE);
end;
Kann mir da jemand weiterhelfen???

Viele Grüße andi

Andi1982ka 23. Mär 2006 15:39

Re: Meherere Submits in einer Procedure mit TWebBrowser
 
habe einen lösungsansatz gefunden der auch einigermaßen funktioniert... alles weitere siehe hier lösung


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:07 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz