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 <> 'complete' do 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