AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Meherere Submits in einer Procedure mit TWebBrowser

Meherere Submits in einer Procedure mit TWebBrowser

Ein Thema von Andi1982ka · begonnen am 22. Mär 2006 · letzter Beitrag vom 23. Mär 2006
Antwort Antwort
Andi1982ka

Registriert seit: 22. Mär 2006
Ort: Karlsruhe
12 Beiträge
 
#1

Meherere Submits in einer Procedure mit TWebBrowser

  Alt 22. Mär 2006, 07:07
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
  Mit Zitat antworten Zitat
Andi1982ka

Registriert seit: 22. Mär 2006
Ort: Karlsruhe
12 Beiträge
 
#2

Re: Meherere Submits in einer Procedure mit TWebBrowser

  Alt 23. Mär 2006, 16:39
habe einen lösungsansatz gefunden der auch einigermaßen funktioniert... alles weitere siehe hier lösung
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:39 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