Delphi-PRAXiS
Seite 1 von 2  1 2      

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)

taktaky 15. Sep 2007 10:03


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:
if ??? then
WebBrowser1.OleObject.document.forms.item(0).elements.item('vorname').value:=Edit4.Text;
else
exit;
//Showmessage('blabla');
Was muss ich im Bereich ??? schreiben?

Oder einfach so :
Delphi-Quellcode:
if fileexists(WebBrowser1.OleObject.document.forms.item(0).elements.item('vorname').value)
:gruebel:

marabu 15. Sep 2007 10:22

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

taktaky 15. Sep 2007 10:47

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

Zitat von marabu
ein nicht existierendes item ist null.

So habe ich ausprobiert:
Delphi-Quellcode:
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;
Leider hat es nicht geklappt !

marabu 15. Sep 2007 10:59

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.

DGL-luke 15. Sep 2007 11:00

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

Delphi-Quellcode:
if WebBrowser1.OleObject.document.forms.item(0).elements.item('vorname') <> Null then
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).

taktaky 15. Sep 2007 11:14

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

Zitat von DGL-luke
Eher so:

Delphi-Quellcode:
if WebBrowser1.OleObject.document.forms.item(0).elements.item('vorname') <> Null then
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).

Ich bekomme eine Fehlermeldung : Invalid variant Operation !!!

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.

marabu 15. Sep 2007 12:04

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.

taktaky 15. Sep 2007 12:19

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

Zitat von marabu
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.

Und wie?

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 !!!




--

marabu 15. Sep 2007 12:51

Re: WebBrowser1.OleObject.document.forms.item(0).eleme nts.it
 
Den Test musst du mit der Funktion VarIsClear() durchführen.

taktaky 15. Sep 2007 13:55

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

Zitat von marabu
Den Test musst du mit der Funktion VarIsClear() durchführen.

Ich habe leider kein Beispiel über VarIsClear() in Forum gefunden.

Ich habe Eine andere Lösung (aber nicht ganz gut aber funktioniert):
Delphi-Quellcode:
procedure TForm1.Button5Click(Sender: TObject);
begin
WebBrowser1.OleObject.Document.Forms.item(0).submit;
Button1.Enabled:= false;
Button5.Enabled:= false;
Ich habe das Button "senden" in Webbrowser gelöscht und auf Form erstellen
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.
Seite 1 von 2  1 2      

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