Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi WebBrowser1.OleObject.document.forms.item(0).eleme nts.item(' (https://www.delphipraxis.net/99645-webbrowser1-oleobject-document-forms-item-0-elements-item.html)

Andreas L. 15. Sep 2007 14:05

Re: WebBrowser1.OleObject.document.forms.item(0).eleme nts.it
 
Ein Blick in die Delphi-Hilfe verrät dir, dass die Funktion so angewendet werden kann:

Delphi-Quellcode:

   if VarIsClear(webbrowser1.......) then
    begin
     tuwas;
    end;

taktaky 15. Sep 2007 14:36

Re: WebBrowser1.OleObject.document.forms.item(0).eleme nts.it
 
Zitat:

Zitat von Andreas L.
Ein Blick in die Delphi-Hilfe verrät dir, dass die Funktion so angewendet werden kann:

Delphi-Quellcode:

   if VarIsClear(webbrowser1.......) then
    begin
     tuwas;
    end;

So habe ich den Code geschrieben:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
if VarIsClear(WebBrowser1.OleObject.document.forms.item(0)) <> Null then
begin
blabla
blabla
end
else
exit;
end;
Man kann das Formular zwar ausfüllen und senden aber wenn das Formular nicht mehr vorhanden ist und klicke ich auf das Button, dann erscheint eine Fehlermeldung

Andreas L. 15. Sep 2007 15:03

Re: WebBrowser1.OleObject.document.forms.item(0).eleme nts.it
 
Zitat:

Zitat von taktaky
Zitat:

Zitat von Andreas L.
Ein Blick in die Delphi-Hilfe verrät dir, dass die Funktion so angewendet werden kann:

Delphi-Quellcode:

   if VarIsClear(webbrowser1.......) then
    begin
     tuwas;
    end;

So habe ich den Code geschrieben:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
if VarIsClear(WebBrowser1.OleObject.document.forms.item(0)) <> Null then
begin
blabla
blabla
end
else
exit;
end;
Man kann das Formular zwar ausfüllen und senden aber wenn das Formular nicht mehr vorhanden ist und klicke ich auf das Button, dann erscheint eine Fehlermeldung

Du brauchst nicht mehr auf <> Null prüfen. Das macht alles die Funtion varIsClear. Einfache if varisclear(...) then wie ich es weiter oben bereits gepostet habe. Markiere in Delphi den Befel VarIsClear und drücke F1...

taktaky 15. Sep 2007 17:38

Re: WebBrowser1.OleObject.document.forms.item(0).eleme nts.it
 
Wenn ich so mache:
Delphi-Quellcode:
if VarIsClear(WebBrowser1.OleObject.document.forms.item(0))
dann passiert nichts, wenn ich auf das Button zum Ausfüllen klicke !

marabu 15. Sep 2007 17:51

Re: WebBrowser1.OleObject.document.forms.item(0).eleme nts.it
 
C'est tres mysterieuse.

Delphi-Quellcode:
procedure TDemoForm.ButtonClick(Sender: TObject);
var
  form, element: OleVariant;
begin
  form := WebBrowser.OleObject.Document.forms.item('f');
  if not VarIsClear(form) then
  begin
    element := form.elements.item('q');
    if not VarIsClear(element) then
      element.value := 'taktaky';
  end;
end;
Wenn ich auf http://www.google.de navigiere und den Button drücke, dann wird das Suchfeld gefüllt, auf anderen Seiten wird ein Fehler vermieden. Das waren deine beiden Anforderungen - n'est-ce pas?

Salut

taktaky 16. Sep 2007 09:46

Re: WebBrowser1.OleObject.document.forms.item(0).eleme nts.it
 
Mit dem Code erscheint zwar keine Fehlermeldung, passiert aber nichts!
Delphi-Quellcode:
procedure TDemoForm.ButtonClick(Sender: TObject);
var
  form, element: OleVariant;
begin
  form := WebBrowser1.OleObject.Document.forms.item('vorname');
  if not VarIsClear(form) then
  begin
    element := form.elements.item('vorname');
    if not VarIsClear(element) then
      element.value := 'taktaky';
  end;
end;
Das Feld im WebBrowser1 mit dem Namen "vorname" bleibt leer


--------------

Die Muhkuh 16. Sep 2007 09:47

Re: WebBrowser1.OleObject.document.forms.item(0).eleme nts.it
 
Was sagt der Debugger? Per F7 mal durchsteppen und die Werte ansehen...

marabu 16. Sep 2007 10:01

Re: WebBrowser1.OleObject.document.forms.item(0).eleme nts.it
 
Hallo taktaky,

du hast einen kleinen Fehler beim Anpassen meines Codes gemacht: forms.item('f') bezeichnet das Formular mit dem Namen 'f' auf der Google-Einstiegsseite und du hast einfach den Namen deines Feldes eingetragen. Wenn dein Formular keinen Namen hat, dann kannst du es über seinen Index ansprechen - forms.item(0) addressiert das erste Formular auf der Seite.

Freundliche Grüße

taktaky 16. Sep 2007 10:25

Re: WebBrowser1.OleObject.document.forms.item(0).eleme nts.it
 
Zitat:

Zitat von marabu
Hallo taktaky,

du hast einen kleinen Fehler beim Anpassen meines Codes gemacht: forms.item('f') bezeichnet das Formular mit dem Namen 'f' auf der Google-Einstiegsseite und du hast einfach den Namen deines Feldes eingetragen. Wenn dein Formular keinen Namen hat, dann kannst du es über seinen Index ansprechen - forms.item(0) addressiert das erste Formular auf der Seite.

Freundliche Grüße

Das stimmt. Nun funktioniert alles in Ordnung ohne Fehlermeldung, wenn kein Formular in WebBrowser gibt :thumb:

Viele Grüße
Delphi-Quellcode:
 _      _   _   _____   _       _____   __   _ 
| |   / / | | | ____| | |     | ____| |  \ | | 
| |  / /  | | | |__   | |     | |__   |   \| | 
| | / /   | | |  __|  | |     |  __|  | |\   | 
| |/ /    | | | |___  | |___  | |___  | | \  | 
|___/     |_| |_____| |_____| |_____| |_|  \_| 
 _____        ___   __   _   _   _   
|  _  \     /   | |  \ | | | | / / 
| | | |    / /| | |   \| | | |/ /   
| | | |   / / | | | |\   | | |\ \   
| |_| |  / /  | | | | \  | | | \ \ 
|_____/ /_/   |_| |_|  \_| |_|  \_\


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:25 Uhr.
Seite 2 von 2     12   

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