Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Ein Wort in WebBrowser ändern : webbrowser1.items(6):= 'Hi' (https://www.delphipraxis.net/99479-ein-wort-webbrowser-aendern-webbrowser1-items-6-%3D-hi.html)

taktaky 12. Sep 2007 20:44


Ein Wort in WebBrowser ändern : webbrowser1.items(6):= 'Hi'
 
Ich habe auch auf Form einen WebBrowser1

Quelltext in Webbrowser1:
Delphi-Quellcode:
<html>
<head>
<title>test</title>
</head>
<body>


<font size="7">
Hallo1</font></p>
</body>
</html>
Die html ist natürlich ein Teil vom Programm und nicht eine externe Datei in Web :mrgreen:

Ich habe versucht die Zeille 6 im Code das Wort hallo1 mit hallo2 so zu ersetzen:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
webbrowser1.items(6):= 'Hallo2</font></p>';// hat leider nicht funktioniert !!!
end;
end
Hat jemand eine Idee?

DeddyH 12. Sep 2007 20:57

Re: Ein Wort in WebBrowser ändern : webbrowser1.items(6):= '
 
"Hat leider nicht funktioniert...", diese Fehlermeldung hab ich als Hotliner am Liebsten :stupid: Was sagt denn der Compiler? Was steht auf dem Bildschirm (nun sag nicht: "Eine Blumenvase")?

taktaky 12. Sep 2007 21:02

Re: Ein Wort in WebBrowser ändern : webbrowser1.items(6):= '
 
Der Befehl existiert überhaupt nicht in Delphi :mrgreen: :mrgreen:
Der Delphi sagt : undeclared 'Items' !!!

also um einen Wert in WebBrowser zu ändern mache ich so :
Delphi-Quellcode:
WebBrowser1.OleObject.document.forms.item(0).elements.item('GesuchtesWort').value:='GewunschtesWort;
Aber diesmal will ich nicht ein Wort sondern eine Zeile in Code ersetzen :gruebel:

DeddyH 12. Sep 2007 21:12

Re: Ein Wort in WebBrowser ändern : webbrowser1.items(6):= '
 
Da ich den TWebBrowser nie benutzt habe, kann ich auch nur mutmaßen, aber ich denke, Du versuchst an der völlig falschen Stelle, Deine Änderungen anzubringen. Und zwar müssen vermutlich diese Änderungen an der Datenquelle (also der HTML-Datei) und nicht am Ausgabemedium (dem Browser) vorgenommen werden.

taktaky 12. Sep 2007 22:05

Re: Ein Wort in WebBrowser ändern : webbrowser1.items(6):= '
 
Ja, der Code oben, kann nur die Webbrowser-Oberfläche zugreifen und ändern und nicht den html-Code

Und das was ich mit google gejagt :
Delphi-Quellcode:
// Beim Einsatz der TWebBrowser-Komponente kann man natürlich auch auf
//den HTML-Quellcode der angezeigten Seite zugreifen:
var htmlcode: string;
begin
  htmlcode:=WebBrowser1.OleObject.Document.Body.InnerHtml;
:mrgreen:

Ich werde versuchen

taktaky 12. Sep 2007 22:37

Re: Ein Wort in WebBrowser ändern : webbrowser1.items(6):= '
 
Leider hilft der Code nicht viel

Zacherl 12. Sep 2007 22:40

Re: Ein Wort in WebBrowser ändern : webbrowser1.items(6):= '
 
Warum nicht? Pushen innerhalb von 30 Minuten :roll:

taktaky 13. Sep 2007 00:32

Re: Ein Wort in WebBrowser ändern : webbrowser1.items(6):= '
 
Was schlägst Du vor? :mrgreen:

Nuclear-Ping 13. Sep 2007 07:02

Re: Ein Wort in WebBrowser ändern : webbrowser1.items(6):= '
 
[OT]
Zitat:

Was schlägst Du vor? :mrgreen:
Richtig cool wäre es, wenn du aufhören würdest, Programmieren zu wollen und man dich nie mehr irgendwo in nem Forum sehen würde - und selbst wenn dann hauptsächlich auf der Helferseite.

Wenn man mal so schaut, stellst du - sorry für die Direktheit - nur richtig strohdoofe Fragen, aber ich hab in KEINEM Forum gesehen, dass du auch nur irgendwem einmal richtig konstruktiv geholfen hast.
[/OT]

chaosben 13. Sep 2007 07:24

Re: Ein Wort in WebBrowser ändern : webbrowser1.items(6):= '
 
Zitat:

Zitat von Nuclear-Ping
Richtig cool wäre es, wenn du aufhören würdest, Programmieren zu wollen und man dich nie mehr irgendwo in nem Forum sehen würde

@taktaky: Bitte verzeih ihm dieses Äußerung - wahrscheinlich musste er grad mitten im Programmieren Windows neu starten. ;)

Zum Thema:
Mit dem Stückchen Code
Delphi-Quellcode:
WebBrowser1.OleObject.Document.Body
bist du der Lösung schon relativ nahe. Jetzt brauchst du nur noch folgendes Wissen:
Wie du sicherlich schon weißt, besteht ein HTML(XML)-Dokument hauptsächlich aus Eltern-Kind-Beziehungen. Diese werden auch in den Objekten (besser gesagt Interfaces) der TWebbrowser-Komponente abgebildet.
Im Klartext sieht könntest du das so nutzen (unit "mshtml" einbinden):
Delphi-Quellcode:
var
 Element : IHTMLElement;
 Children : IHTML
 idx : Integer;
begin
  Element:=WebBrowser1.OleObject.Document.Body as IHTMLElement;
  Children:=Element.Children as IHTMLElementCollection;

  for idx:=0 to Children.length-1 do
  begin
    Element:=Children.Item(idx, idx);
    //jetzt kannst du auf die Kind-Elemente zugreifen und z.B. Element.tagName prüfen
  end;
end;
Auf diese Weise könntest du bis zu dem Element navigieren, das du ändern möchtest. Wenn du es dann gefunden hast, kannst du Element.innerHTML neu beschreiben.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:35 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 by Thomas Breitkreuz