![]() |
Twebbrowser überprüfen, ob komponente existiert
moin
hab folgenes problem: ich habe ein pro womit ich mich auf einer inet seite anmelde... das klappt auch alles. nur wenn man falsche daten btw keinen internet zugang hat stürzt das programm ab -.- also will ich mit Boolean irgendwie feststellen, dass zB das edit-feld für die ID oder PW in der seite existiert... SuFu hat nix gescheites ergeben^^ aba hab schon paar anfänge...
Delphi-Quellcode:
wie gesagt ohne diesem code funktioniert alles... aber es wird halt nich kontrolliert, ob alles richtig läuft, da man keine einsicht auf den Webbrowser hat
geheimcont:=(WebBrowser1.OleObject.document.forms.item(1).elements.item('yanswer')).value:=PW;
//yanswer is der name von dem Edit feld und PW ist mein passwort als string if geheimcont=false then //geiheimcont is ein Boolean begin showmessage('Der Vorgang ist fehlgeschlagen!'); exit; end; das geht nicht -.- habe keine ahnung warum :wall: :wall: vielen Danke scho mal im voraus :thumb: mfg innos |
Re: Twebbrowser überprüfen, ob komponente existiert
Hallo,
die Prüfung solltest du machen, bevor du auf eine Eigenschaft wie Value zugreifst:
Delphi-Quellcode:
Getippt und nicht getestet.
var
v: OleVariant; begin v := WebBrowser.OleObject.document.forms.item(1).elements.item('yanswer'); if not VarIsNull(v) then v.Value := PW; end; Grüße vom marabu |
Re: Twebbrowser überprüfen, ob komponente existiert
mhh thx erstmal...
es funktioniert soweit, dass es startet und solang alles angezeigt werden kann alles beim alten .... nur wenn man halt die falschen eingaben macht, stürzt es immer noch ab. ich glaube wenn das prog versucht in diesem frame etwas zufinden kommt es zu der fehler meldung :wall: edit: was heißt eig VarIsNull? |
Re: Twebbrowser überprüfen, ob komponente existiert
Hallo,
ich muss zugeben, dass ich dein Problem nicht so gut verstehe. Die von mir angegebene Prüfung für das Eingabe-Element musst du natürlich auch für die Web-Form machen:
Delphi-Quellcode:
Freundliche Grüße
var
v: OleVariant; begin v := WebBrowser.OleObject.document; if v.forms.length > 1 then begin v := v.forms.item(1).elements.item('yanswer'); if not VarIsNull(v) then v.Value := PW; end; end; |
Re: Twebbrowser überprüfen, ob komponente existiert
aha^^ deinen neuen code probier ich sofort...
habe aba glaube ich das problem gefunden aber nicht gelöst ;( also: mein programm soll auf einer internetseite ein PW ändern. dazu muss ich in einige edit-felder schreiben... und dann bestätigen. Wenn ich also was falsches eingeben, kommt natürlich nicht das nächste edit-feld beim bestätigen sonderen eine nachricht... ich glaube aber, dass das neue edut-feld dennoch existiert, das das prog versucht in dieses hineinzuschreiben -.- also is dein 1. code (glaub ich) durchaus richtig nur man müsste prüfen, ob es Enabled ist oder nicht^^ EDIT: jo dein 2. code geht auch net -.- man muss iwie rausfinden, ob das edit feld in der seite ansprechbar ist... |
Re: Twebbrowser überprüfen, ob komponente existiert
Hallo,
mein Code kann dein Problem nicht lösen, da ich nicht genügend Informationen habe. Der Code soll dir nur zeigen, was bei einem ungeprüften Zugriff schief laufen kann und wie du es verhinderst. Um dir wirklich helfen zu können benötige ich den Quelltext der betroffenen HTML-Seiten (oder eine vollständige und korrekte Beschreibung deines Problems). Wenn du selbst weiter probieren möchtest, dann empfehle ich dir in kleinen Schritten vorzugehen. Ziehe dir ein Memo auf deine Form und schreibe nach jeder Zeile Code ein überprüfbares Zwischenergebnis in das Memo. Freundliche Grüße |
Re: Twebbrowser überprüfen, ob komponente existiert
ok wird zwar etwas arbeit aba vielen Dank an dich hast mir echt geholfen, denn ich weiß jetzt zumindest woran es liegt...
|
Re: Twebbrowser überprüfen, ob komponente existiert
maannnn :wall: :wall: :wall:
das funktioniert alles nicht T_T also ich versuche mein problem nochmal genauer zuerklären :) mit meinem programm ändert man über eine internetseite ein Passwort für ein Onlinespiel... dazu ruft das Prog in der Twebbrowser komponente einen link auf, in dem man seine ID und die E-Mail addresse eingeben muss... danach (wenn die eingabe richtig war) öffnet sich in dem WebBrowser ne neue seite, wo man dann eine geheumfrage bestätigen muss und schließlich auf der letzten Seite wird dann nach dem neuen gewünschten PW gefragt. DAS FUNKTIONIERT bereits... ABER: wenn ich zB keine Verbindung mit dem internet habe, oder wenn ich falsche eingaben vornehme, werden ja die nachfolgenen seiten anders aussehen... diese seiten (zB mit E-Mail-eingabe ist falsch) soll das programm erkennen... oder wenigstens wissen, dass hier nicht alles nach plan läuft, um dann eine Warnung an den Benutzer zu schicken.. und feddich Also: Ich will jedesmal wenn eine neue Seite aufgerufen wird, diese nach bestimmten Komponenten durchsuchen (zB die Edit-Felder) und NUR wenn diese existieren, soll dann ein String an die gesendet werden... BITTE helft mir ich hab echt keine ahnung und habe recht viel zeit schon daran verbracht -.- Vielen Dank xD Hoffe ihr versteht mein problem jetzt etwas besser mfg Innos |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:06 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