![]() |
Problem beim Formularaufbau
Hallo,
ich möchte von meiner Form aus ein Webformular ausfüllen. Lass ich das Programm so laufen, bekomme ich Zugriffsverletzungen! Lass ich die procedure über einen Button.Click laufen, funktionierts! Wie bekomme ich den Code ohne Button zum Laufen? Hoffe, Ihr könnt mir helfen! Viele Grüsse, moperswings!
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin webbrowser1.Navigate('http:// ... '); sleep(50); webbrowser1.OleObject.document.forms.item('form1').elements.item('textfield').value := 'hallo'; sleep(50); webbrowser1.OleObject.document.forms.item('form1').elements.item('submit').click; end; |
Re: Problem beim Formularaufbau
Das IE-Control scheint zu diesem Zeitpunkt noch nicht instantiiert zu sein
|
Re: Problem beim Formularaufbau
Schmeiss den Code in FormShow!
Und dann leg im Webbrowser ein Ereignis an (evtl.: OnDocumentComplete), nimm die Sleeps raus und schmeiss die unteren beiden Zeilen in das neue Ereignis |
Re: Problem beim Formularaufbau
FormShow funktioniert soweit, das fehlerfrei Compiliert wird!
Die Befehle hatte ich auch schon rausgenommen, fehlt mir noch das Ereignis, weil die Befehle nicht ausgeführt werden! |
Re: Problem beim Formularaufbau
Zitat:
|
Re: Problem beim Formularaufbau
Das Ereignis habe ich hinbekommen. Habe das aus der Hilfe übernommen.
ShowForm habe ich wieder rausgenommen! ABER: Jetzt wird mir das Formular in einer Schleife aufgerufen! Wie bekomme ich den Dauerabruf hier raus?
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin webbrowser1.navigate('http://localhost/button.html'); end; procedure TForm1.WebBrowser1NavigateComplete2(Sender: TObject; const pDisp: IDispatch; var URL: OleVariant); begin if CurDispatch = nil then CurDispatch := pDisp; end; procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject; const pDisp: IDispatch; var URL: OleVariant); begin if (pDisp = CurDispatch) then begin webbrowser1.OleObject.document.forms.item('form1').elements.item('textfield').value := 'hallo'; webbrowser1.OleObject.document.forms.item('form1').elements.item('submit').click; CurDispatch := nil; {die globale Variable leeren} end; end; |
Re: Problem beim Formularaufbau
Hi,
du musst mehrere DocumentComplete-Handler vorhalten oder du setzt den Handler einfach auf nil:
Delphi-Quellcode:
Getippt und nicht getestet.
procedure TForm1.FormCreate(Sender: TObject);
begin with webbrowser1 do begin OnDocumentComplete := WebBrowserDocumentComplete; Navigate('http://localhost/button.html'); end; end; procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject; const pDisp: IDispatch; var URL: OleVariant); begin with WebBrowser1 do if pDisp = DefaultInterface then begin OnDocumentComplete := nil; OleObject.document.forms.item('form1').elements.item('textfield').value := 'hallo'; OleObject.document.forms.item('form1').elements.item('submit').click; end; end; Freundliche Grüße |
Re: Problem beim Formularaufbau
Läuft!
Vielen Dank, marabu |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:24 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz