Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Über Webbrowser in Textarea schreiben (https://www.delphipraxis.net/72239-ueber-webbrowser-textarea-schreiben.html)

Cöster 27. Jun 2006 14:48


Ü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:
WebBrowser1.OleObject.Document.Forms('Description').write:='lalalalala';
oder so ändern. Gibt es da so einen Befehl?

Cöster 27. Jun 2006 19:15

Re: Über Webbrowser in Textarea schreiben
 
Vorherige Frage in diesem Thread hat sich geklärt, Frage ist jetzt neu formuliert.

marabu 27. Jun 2006 19:27

Re: Über Webbrowser in Textarea schreiben
 
Hallo.

Es ist die Eigenschaft value, der du den Text zuweisen musst. Schau mal hier: klick

Grüße vom marabu

Cöster 27. Jun 2006 19:42

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:
WebBrowser1.OleObject.Document.Forms('description').value:='lalalalala';
Es läuft aber immer noch nicht. Was muss ich jetzt noch ändern?

chaosben 28. Jun 2006 05:41

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 GetElementByID arbeiten kannst

Cöster 28. Jun 2006 15:59

Re: Über Webbrowser in Textarea schreiben
 
Im Quelltext steht:

<form method="post" name="admin">

Nun hab ich meinen Quelltext in
Delphi-Quellcode:
WebBrowser1.OleObject.Document.Forms('admin').items('description').value:='lalalalala';
In der Fehlermeldung steht, dass eine Exception der Klasse EOleSysError aufgetreten ist. Meldung: 'Nicht implementiert.'

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>

Cöster 2. Jul 2006 10:37

Re: Über Webbrowser in Textarea schreiben
 
*push*

marabu 2. Jul 2006 16:07

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:
with WebBrowser do
begin
  // das wäre deine Transfer-Leistung gewesen:
  OleObject.document.forms.item('admin').elements.item('description').value := 'wer lesen kann ...';
end;
Freundliche Grüße vom marabu

Cöster 2. Jul 2006 17:02

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:
while WebBrowser1.ReadyState <> READYSTATE_COMPLETE do Application.ProcessMessages;
regeln, aber das funzt irgendwie nicht. Das liegt wohl daran, dass die Seite, auf der die Textarea ist, nicht durch
Delphi-Quellcode:
WebBrowser1.Navigate('www....')
sondern nur durch die Simulation eines Button-Klicks im Webbrowser per
Delphi-Quellcode:
WebBrowser1.OleObject.document.Frames.submitForm('0','playeredit');
angezeigt werden kann. Gibt es einen Befehl, der prüft, ob die Seite vollständig angezeigt wird?
Danke schonmal im voraus.

marabu 3. Jul 2006 09:29

Re: Über Webbrowser in Textarea schreiben
 
Hallo.


Zitat:

Zitat von Cöster
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:
while WebBrowser1.ReadyState <> READYSTATE_COMPLETE do Application.ProcessMessages;
regeln, aber das funzt irgendwie nicht.

Falls du einen Compiler-Fehler erhältst, dann vielleicht deshalb:

Delphi-Quellcode:
while WebBrowser1.ReadyState <> 'complete' do Application.ProcessMessages;
READSTATE_COMPLETE ist als $4 definiert.

Zitat:

Zitat von Cöster
Das liegt wohl daran, dass die Seite, auf der die Textarea ist, nicht durch
Delphi-Quellcode:
WebBrowser1.Navigate('www....')
sondern nur durch die Simulation eines Button-Klicks im Webbrowser per
Delphi-Quellcode:
WebBrowser1.OleObject.document.Frames.submitForm('0','playeredit');
angezeigt werden kann.

Das mag ich nicht glauben.

Zitat:

Zitat von Cöster
Gibt es einen Befehl, der prüft, ob die Seite vollständig angezeigt wird?

Du hast mehrere Möglichkeiten neben der Überprüfung von readyState:

Delphi-Quellcode:
while WebBrowser.ControlInterface.Busy do
  Application.ProcessMessages;
Oder du wartest auf Nachricht:

Delphi-Quellcode:
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;
Grüße vom marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:08 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz