![]() |
Über Webbrowser in Textarea schreiben
Hi!
Wie kann ich über den Webbrowser in eine Textarea schreiben? Was ich über die Textarea weiß ist: <textarea rows="5" cols="45" wrap="virtual" name="description">gagagagaga</textarea> gagagagaga ist der Text der jetzt drinsteht. Den will ich über einen Befehl à la
Delphi-Quellcode:
oder so ändern. Gibt es da so einen Befehl?
WebBrowser1.OleObject.Document.Forms('Description').write:='lalalalala';
|
Re: Über Webbrowser in Textarea schreiben
Vorherige Frage in diesem Thread hat sich geklärt, Frage ist jetzt neu formuliert.
|
Re: Über Webbrowser in Textarea schreiben
Hallo.
Es ist die Eigenschaft value, der du den Text zuweisen musst. Schau mal hier: ![]() Grüße vom marabu |
Re: Über Webbrowser in Textarea schreiben
Also jetzt weiß ich schon mal, dass ich write durch value austauschen muss. Deinem Link konnte ich leider keine schlauen Schlüsse entziehen. Ich bin jetzt so weit:
Delphi-Quellcode:
Es läuft aber immer noch nicht. Was muss ich jetzt noch ändern?
WebBrowser1.OleObject.Document.Forms('description').value:='lalalalala';
|
Re: Über Webbrowser in Textarea schreiben
Laut dem Titel des Threads willst du in eine Textarea schreiben.
Mit deinem Code schreibst du aber in das Formular. Du musst dir also erst das Formular besorgen und dann die darunter liegende Textarea. Dann sollte deine Textzuweisung funktionieren. Im glücklichsten Fall, hat die Textarea eine ID so das du mit ![]() |
Re: Über Webbrowser in Textarea schreiben
Im Quelltext steht:
<form method="post" name="admin"> Nun hab ich meinen Quelltext in
Delphi-Quellcode:
In der Fehlermeldung steht, dass eine Exception der Klasse EOleSysError aufgetreten ist. Meldung: 'Nicht implementiert.'
WebBrowser1.OleObject.Document.Forms('admin').items('description').value:='lalalalala';
Was auch immer das heißen mag. Ist vielleicht der begriff "items" falsch oder muss ich eckige Klammern benutzen? Der Webbrowser ist absolutes Neuland für mich, vielleicht kann mir ja jemand weiterhelfen. Danke PS: Von einer ID steht bei der Textarea nix. Nur wie ich oben schon geschrieben hab: <textarea rows="5" cols="45" wrap="virtual" name="description">gagagagaga</textarea> |
Re: Über Webbrowser in Textarea schreiben
*push*
|
Re: Über Webbrowser in Textarea schreiben
In dem von mir in Beitrag #3 verlinkten thread findest du dort im letzten Beitrag Code, den du nur anpassen musst:
Delphi-Quellcode:
Freundliche Grüße vom marabu
with WebBrowser do
begin // das wäre deine Transfer-Leistung gewesen: OleObject.document.forms.item('admin').elements.item('description').value := 'wer lesen kann ...'; end; |
Re: Über Webbrowser in Textarea schreiben
Auch bei deinem Code ist erst ist "eine Exception der Klasse EAccessViolation" aufgetreten. Als ich den Befehl in eine ButtonClick-Procedure geschrieben hab, hat's funktioniert. Das Problem liegt darin, dass der Befehl zu früh ausgeführt wird (bevor die Seite angezeigt wird). Das wollte ich eigentlich mit
Delphi-Quellcode:
regeln, aber das funzt irgendwie nicht. Das liegt wohl daran, dass die Seite, auf der die Textarea ist, nicht durch
while WebBrowser1.ReadyState <> READYSTATE_COMPLETE do Application.ProcessMessages;
Delphi-Quellcode:
sondern nur durch die Simulation eines Button-Klicks im Webbrowser per
WebBrowser1.Navigate('www....')
Delphi-Quellcode:
angezeigt werden kann. Gibt es einen Befehl, der prüft, ob die Seite vollständig angezeigt wird?
WebBrowser1.OleObject.document.Frames.submitForm('0','playeredit');
Danke schonmal im voraus. |
Re: Über Webbrowser in Textarea schreiben
Hallo.
Zitat:
Delphi-Quellcode:
READSTATE_COMPLETE ist als $4 definiert.
while WebBrowser1.ReadyState <> 'complete' do Application.ProcessMessages;
Zitat:
Zitat:
Delphi-Quellcode:
Oder du wartest auf Nachricht:
while WebBrowser.ControlInterface.Busy do
Application.ProcessMessages;
Delphi-Quellcode:
Grüße vom marabu
procedure TWebForm2.WebBrowserBeforeNavigate2(Sender: TObject;
const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData, Headers: OleVariant; var Cancel: WordBool); begin if pDisp = WebBrowser.DefaultInterface then DocumentLoaded := false; end; procedure TWebForm2.WebBrowserDocumentComplete(Sender: TObject; const pDisp: IDispatch; var URL: OleVariant); begin if pDisp = WebBrowser.DefaultInterface then DocumentLoaded := true; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:03 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