AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Über Webbrowser in Textarea schreiben
Thema durchsuchen
Ansicht
Themen-Optionen

Über Webbrowser in Textarea schreiben

Ein Thema von Cöster · begonnen am 27. Jun 2006 · letzter Beitrag vom 30. Mär 2012
Antwort Antwort
Seite 1 von 2  1 2      
Cöster

Registriert seit: 6. Jun 2006
589 Beiträge
 
Turbo Delphi für Win32
 
#1

Über Webbrowser in Textarea schreiben

  Alt 27. Jun 2006, 15:48
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 WebBrowser1.OleObject.Document.Forms('Description').write:='lalalalala'; oder so ändern. Gibt es da so einen Befehl?
  Mit Zitat antworten Zitat
Cöster

Registriert seit: 6. Jun 2006
589 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Über Webbrowser in Textarea schreiben

  Alt 27. Jun 2006, 20:15
Vorherige Frage in diesem Thread hat sich geklärt, Frage ist jetzt neu formuliert.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#3

Re: Über Webbrowser in Textarea schreiben

  Alt 27. Jun 2006, 20:27
Hallo.

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

Grüße vom marabu
  Mit Zitat antworten Zitat
Cöster

Registriert seit: 6. Jun 2006
589 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Über Webbrowser in Textarea schreiben

  Alt 27. Jun 2006, 20:42
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:WebBrowser1.OleObject.Document.Forms('description').value:='lalalalala'; Es läuft aber immer noch nicht. Was muss ich jetzt noch ändern?
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#5

Re: Über Webbrowser in Textarea schreiben

  Alt 28. Jun 2006, 06:41
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
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat
Cöster

Registriert seit: 6. Jun 2006
589 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Über Webbrowser in Textarea schreiben

  Alt 28. Jun 2006, 16:59
Im Quelltext steht:

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

Nun hab ich meinen Quelltext inWebBrowser1.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>
  Mit Zitat antworten Zitat
Cöster

Registriert seit: 6. Jun 2006
589 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Über Webbrowser in Textarea schreiben

  Alt 2. Jul 2006, 11:37
*push*
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#8

Re: Über Webbrowser in Textarea schreiben

  Alt 2. Jul 2006, 17:07
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
  Mit Zitat antworten Zitat
Cöster

Registriert seit: 6. Jun 2006
589 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Über Webbrowser in Textarea schreiben

  Alt 2. Jul 2006, 18:02
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 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 WebBrowser1.Navigate('www....') sondern nur durch die Simulation eines Button-Klicks im Webbrowser per 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.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#10

Re: Über Webbrowser in Textarea schreiben

  Alt 3. Jul 2006, 10:29
Hallo.


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 while WebBrowser1.ReadyState <> READYSTATE_COMPLETE do Application.ProcessMessages; regeln, aber das funzt irgendwie nicht.
Falls du einen Compiler-Fehler erhältst, dann vielleicht deshalb:

while WebBrowser1.ReadyState <> 'completedo Application.ProcessMessages; READSTATE_COMPLETE ist als $4 definiert.

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

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
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 21:33 Uhr.
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