AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Wieder einmal: Felder im WebBrowser ausfüllen
Thema durchsuchen
Ansicht
Themen-Optionen

Wieder einmal: Felder im WebBrowser ausfüllen

Ein Thema von Rued · begonnen am 31. Jan 2016 · letzter Beitrag vom 2. Feb 2016
Antwort Antwort
Benutzerbild von Rued
Rued

Registriert seit: 14. Mai 2008
Ort: Schleching
108 Beiträge
 
Delphi 12 Athens
 
#1

AW: Wieder einmal: Felder im WebBrowser ausfüllen

  Alt 1. Feb 2016, 15:56
Normalerweise solltest du keine Schleife brauchen.

Du nimmst dir einen Button zum Testen mit
Delphi-Quellcode:
  try
   for I := 0 to 20 do
    begin
     WebBrowser1.OleObject.document.forms.item(I).elements.item('DenrichtigenNamendesFeldes').value:=Trim(Edit1.Text);
     ShowMessage(IntToStr(I));
    end;
  except
  end; // try
Wenn eine Message aufgeht mit einer Zahl, nimmst du dir einen weiteren Button und trägst einfach,
Delphi-Quellcode:
procedure Tfrm1.btn1Click(Sender: TObject);
begin
WebBrowser1.OleObject.document.forms.item('DieZahlausderMessage').elements.item('DenrichtigenNamendesFeldes').value:=Trim(Edit1.Text);
end;
ein.
Ich habe das schon verstanden. Aber zum "Testen" brauchst Du sehr wohl eine Schleife und ich suchte nach einer Möglichkeit, die bspw. der parent-Eigenschaft oder Ähnlichem entspricht. Also ohne Test, ohne try and error.

Hintergrund ist, dass ich eine Vielzahl verschiedener Formulare habe. Aber ich mache es jetzt mit der Test-try-and-error-Schleife.

Danke Dir!

Gruß

Rüd
Rüdiger Droste
  Mit Zitat antworten Zitat
ScharfeMietze

Registriert seit: 5. Mär 2014
165 Beiträge
 
Delphi 10.2 Tokyo Architect
 
#2

AW: Wieder einmal: Felder im WebBrowser ausfüllen

  Alt 1. Feb 2016, 16:20
Es ist schwierig dir bei ungenauen Angaben zu helfen!!
Zitat:
Ich will ein Formularfeld im Webbrowser mit bekanntem Namen ausfüllen, ohne eine Schleife durchlaufen zu müssen.
nun sagst du
Zitat:
Hintergrund ist, dass ich eine Vielzahl verschiedener Formulare habe.
Daher wären mehr Details von Vorteil. Da man natürlich auch wenn die Formulare bekannt sind was tun kann.

embdwb1.OleObject.Document.GetElementByID('Feldname').value := trim(edit1.text); mal probiert?
  Mit Zitat antworten Zitat
Benutzerbild von Rued
Rued

Registriert seit: 14. Mai 2008
Ort: Schleching
108 Beiträge
 
Delphi 12 Athens
 
#3

AW: Wieder einmal: Felder im WebBrowser ausfüllen

  Alt 2. Feb 2016, 11:04
Es ist schwierig dir bei ungenauen Angaben zu helfen!!
Zitat:
Ich will ein Formularfeld im Webbrowser mit bekanntem Namen ausfüllen, ohne eine Schleife durchlaufen zu müssen.
nun sagst du
Zitat:
Hintergrund ist, dass ich eine Vielzahl verschiedener Formulare habe.
Daher wären mehr Details von Vorteil. Da man natürlich auch wenn die Formulare bekannt sind was tun kann.
Ich denke nicht, dass ich da einen Widerspruch formuliert habe, da die Lösung, die bei einem Formular funktioniert, auch bei anderen funktioniert, die sich lediglich durch unterschiedlich bezeichnete Feldnamen unterscheiden. Zum Beispiel nennt das eine das Eingabefeld für den Namen "Name", das andere Formular nennt es "Zuname". Wenn ich weiß, wie ich im Formular 1 das Feld "Name" anspreche, weiß ich, wie ich - im gleich aufgebauten - Formular 2 das Feld "Zuname" anspreche.
embdwb1.OleObject.Document.GetElementByID('Feldname').value := trim(edit1.text); mal probiert?
Das "GetElementByID" klang so verlockend nach dem Gesuchten (s. o. Findcomponent), dass ich jetzt mein Programm doch auf den EmbeddedWB umgebaut habe. Leider ohne Erfolg, erhalte die Fehlermeldung "Ungültige Variantenoperation".

Gruß

Rüd
Rüdiger Droste
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#4

AW: Wieder einmal: Felder im WebBrowser ausfüllen

  Alt 2. Feb 2016, 11:38
Das "GetElementByID" klang so verlockend nach dem Gesuchten (s. o. Findcomponent), dass ich jetzt mein Programm doch auf den EmbeddedWB umgebaut habe. Leider ohne Erfolg, erhalte die Fehlermeldung "Ungültige Variantenoperation".
Gibt es auch einen Sourcecode, der in Bezug zu dieser Meldung steht?

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von Rued
Rued

Registriert seit: 14. Mai 2008
Ort: Schleching
108 Beiträge
 
Delphi 12 Athens
 
#5

AW: Wieder einmal: Felder im WebBrowser ausfüllen

  Alt 2. Feb 2016, 12:03
Das "GetElementByID" klang so verlockend nach dem Gesuchten (s. o. Findcomponent), dass ich jetzt mein Programm doch auf den EmbeddedWB umgebaut habe. Leider ohne Erfolg, erhalte die Fehlermeldung "Ungültige Variantenoperation".
Gibt es auch einen Sourcecode, der in Bezug zu dieser Meldung steht?

Gruß
K-H
Ja, gibt es:
Code:
a := PC1.ActivePage.Tag;
fr := TFrame(Findcomponent('FrBrow'+inttostr(a)));
Bro:= TEmbeddedWB(fr.Findcomponent('Web1'));
Bro.OleObject.Document.GetElementByID('Name').value := 'Meyer';
Gruß

Rüd
Rüdiger Droste
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#6

AW: Wieder einmal: Felder im WebBrowser ausfüllen

  Alt 2. Feb 2016, 12:35
Naja,

wenn Bro.OleObject.Document.GetElementByID('Name').value nicht gefunden wird, dann knallt es bei der Zuweisung.

Warum es nicht gefunden wird, kannst Du hier http://www.w3schools.com/jsref/met_d...lementbyid.asp nachvollziehen.

ID <> Name

Wenn Du ein Formularfeld über den Namen suchst, dann solltest Du es über den Namen suchen: http://www.w3schools.com/jsref/met_d...entsbyname.asp

Ggfls. solltest Du vor der Zuweisung eines Werte auch prüfen, ob das Feld gefunden wurde.

Geändert von nahpets ( 2. Feb 2016 um 12:37 Uhr) Grund: Text zu früh abgeschickt, statt erst zuende zu denken und dann zu schreiben...
  Mit Zitat antworten Zitat
Benutzerbild von Rued
Rued

Registriert seit: 14. Mai 2008
Ort: Schleching
108 Beiträge
 
Delphi 12 Athens
 
#7

AW: Wieder einmal: Felder im WebBrowser ausfüllen

  Alt 2. Feb 2016, 12:53
...

Ggfls. solltest Du vor der Zuweisung eines Werte auch prüfen, ob das Feld gefunden wurde.
Peinlicher Fehler meinerseits. Habe Groß- und Kleinschreibung missachtet. Wenn ich nach 'NAME' suche, klappt es!

Ich danke Euch!

Gruß

Rüd
Rüdiger Droste
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:18 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