![]() |
WebBrowser1.OleObject.document.forms.item(0).eleme nts.item('
Hallo,
ich möchte, bevor ich ein Feld ausfülle, zuerst überprüfen, ob das Feld überhaubt in Webbrowser existiert, damit ich keine Fehlermeldung erhalte.
Delphi-Quellcode:
Was muss ich im Bereich ??? schreiben?
if ??? then
WebBrowser1.OleObject.document.forms.item(0).elements.item('vorname').value:=Edit4.Text; else exit; //Showmessage('blabla'); Oder einfach so :
Delphi-Quellcode:
:gruebel:
if fileexists(WebBrowser1.OleObject.document.forms.item(0).elements.item('vorname').value)
|
Re: WebBrowser1.OleObject.document.forms.item(0).eleme nts.it
Hallo,
ein nicht existierendes item ist null. Bitte trage deine Delphi-Version in deinem DP-User-Profil ein. OffTopic: Dein Deutsch wird immer besser, aber mit den Emoticons musst du etwas aufpassen: Weniger ist manchmal mehr. Freundliche Grüße |
Re: WebBrowser1.OleObject.document.forms.item(0).eleme nts.it
Zitat:
Delphi-Quellcode:
Leider hat es nicht geklappt !
if WebBrowser1.OleObject.document.forms.item(0).elements.item('vorname').value <> Null then
begin WebBrowser1.OleObject.document.forms.item(0).elements.item('vorname').value :='x'; WebBrowser1.OleObject.document.forms.item(0).elements.item('nachname').value :='y'; end else exit; end; |
Re: WebBrowser1.OleObject.document.forms.item(0).eleme nts.it
Wenn du auf item.value zugreifst, dann musst du zuerst prüfen, ob item nicht null ist. Du prüfst value und ich hatte item geschrieben.
|
Re: WebBrowser1.OleObject.document.forms.item(0).eleme nts.it
Eher so:
Delphi-Quellcode:
Allerdings solltest du aufpassen, dass du auch auf das richtige "Null" prüfst, das sollte eine entsprechend vordefinierte Konstante sein (Entweder vom Variant generell, oder eine, die nur für den Webbrowser gilt).
if WebBrowser1.OleObject.document.forms.item(0).elements.item('vorname') <> Null then
|
Re: WebBrowser1.OleObject.document.forms.item(0).eleme nts.it
Zitat:
Alle Felder befinden sich im Webbrowser1 und nicht in Web. Aber wenn das Formular geschickt wird, wird eine Seite von der Webseite angezeigt (Als Bestätigung :Formular wurde geschickt). Wenn aber der User wieder auf das Button anklickt, dann erscheint natürlich die Fehlermeldung, da kein Formular in Webbrowser gibt. Und dies möchte ich unbedingt vermeiden. |
Re: WebBrowser1.OleObject.document.forms.item(0).eleme nts.it
Unter diesen Umständen musst du natürlich bereits forms.item(0) auf null prüfen, da sonst der Zugriff auf item(0).elements zu dem beobachteten Zugriffsfehler führt.
|
Re: WebBrowser1.OleObject.document.forms.item(0).eleme nts.it
Zitat:
So habe ich versucht:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin if (WebBrowser1.OleObject.document.forms.item(0)<> Null) and (WebBrowser1.OleObject.document.forms.item(0).elements.item('vorname') <> Null) then begin WebBrowser1.OleObject.document.forms.item(0).elements.item('vorname').value:='x'; WebBrowser1.OleObject.document.forms.item(0).elements.item('nachname').value:='y'; end else exit; end; Ich bekomme immer die Fehlermeldung : Invalid variant Operation !!! -- |
Re: WebBrowser1.OleObject.document.forms.item(0).eleme nts.it
Den Test musst du mit der Funktion VarIsClear() durchführen.
|
Re: WebBrowser1.OleObject.document.forms.item(0).eleme nts.it
Zitat:
Ich habe Eine andere Lösung (aber nicht ganz gut aber funktioniert):
Delphi-Quellcode:
Ich habe das Button "senden" in Webbrowser gelöscht und auf Form erstellen
procedure TForm1.Button5Click(Sender: TObject);
begin WebBrowser1.OleObject.Document.Forms.item(0).submit; Button1.Enabled:= false; Button5.Enabled:= false; Das Button "Senden" sendet das Formular und deaktiviert auch einige Buttons und sich selbst Mit VarIsClear() wäre es vielleicht besser gruß |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:42 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