AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Ereignisse von Twebbrowser zu früh!
Thema durchsuchen
Ansicht
Themen-Optionen

Ereignisse von Twebbrowser zu früh!

Ein Thema von Jan · begonnen am 2. Jan 2003 · letzter Beitrag vom 15. Sep 2003
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Jan
Jan

Registriert seit: 24. Sep 2002
Ort: Magdeburg
491 Beiträge
 
Delphi 7 Enterprise
 
#1

Ereignisse von Twebbrowser zu früh!

  Alt 2. Jan 2003, 15:29
Hallöchen!
Also ich will, dass ein Element einer Webseite sofort nach dem Laden der Seite angesprochen werden. Allerdings gibt es kein event für den TWebBrowser, der den Zugriff nach dem Kompletten Darstellen der Seite ermöglicht, also bekomme ich natürlich jedesmal eine exeption. Ich könnte mir vorstellen, dass das daran liegt, dass es sich um eine Seite mit frames handelt, und dann die Ereignisse sich alle nur auf den Parent beziehen, welcher natürlich schon geladen ist, wenn die children noch nicht geladen sind.
Need Help!
Gruß
Jan
Jan
Wenn die Sonne der Kultur tief steht, werfen auch kleine Gestalten lange Schatten.
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#2
  Alt 2. Jan 2003, 15:33
Wieso? Denn was ist mit NavigateComplete oder DownloadComplete. All das funktioniert problemlos...

Chris
  Mit Zitat antworten Zitat
Benutzerbild von Jan
Jan

Registriert seit: 24. Sep 2002
Ort: Magdeburg
491 Beiträge
 
Delphi 7 Enterprise
 
#3
  Alt 2. Jan 2003, 15:38
Hallo Chakotay1308,
leider nein, wenn ich die Anfrage über einen Buttonklick sende, dann funktioniert sie einwandfrei, aber ondownloadcomplete und onnavigatecomplete resultieren in exeptions.
Gruß
Jan
Jan
Wenn die Sonne der Kultur tief steht, werfen auch kleine Gestalten lange Schatten.
  Mit Zitat antworten Zitat
Benutzerbild von Jan
Jan

Registriert seit: 24. Sep 2002
Ort: Magdeburg
491 Beiträge
 
Delphi 7 Enterprise
 
#4
  Alt 2. Jan 2003, 16:36
weiss denn da echt keiner was zu? *hoff*
Jan
Jan
Wenn die Sonne der Kultur tief steht, werfen auch kleine Gestalten lange Schatten.
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#5
  Alt 2. Jan 2003, 16:39
Versuchs mal mit dem OnProgresss-Ereignis (dann aber mit den Parametern abfragen, ob fertig)...

Chris
  Mit Zitat antworten Zitat
Benutzerbild von Jan
Jan

Registriert seit: 24. Sep 2002
Ort: Magdeburg
491 Beiträge
 
Delphi 7 Enterprise
 
#6
  Alt 2. Jan 2003, 16:49
xcuse me? Erklär mal bitte!
Gruß
Jan
Jan
Wenn die Sonne der Kultur tief steht, werfen auch kleine Gestalten lange Schatten.
  Mit Zitat antworten Zitat
Benutzerbild von d3g
d3g

Registriert seit: 21. Jun 2002
602 Beiträge
 
#7
  Alt 2. Jan 2003, 17:22
Hi Jan,

wenn du mit der Prozedur vom SwissDelphiCenter benutzst, dann funktioniert die in zwei Fällen nicht:
  1. Wenn du nicht die exakte Groß- und Kleinschreibung wiedergibst und
  2. wenn das Feld kein name-Attribut sonder nur noch das neuere id-Attribut hat.
Das kann man umgehen, indem man die Prozedur etwas abändert:
Delphi-Quellcode:
function FillForm(WebBrowser: TWebBrowser; FieldName: string; Value: string): Boolean;
var
  i, j: Integer;
  FormItem: Variant;
begin
  Result := False;
  //no form on document
  if WebBrowser.OleObject.Document.all.tags('FORM').Length = 0 then
    Exit;
    
  //count forms on document
  for I := 0 to WebBrowser.OleObject.Document.forms.Length - 1 do begin
    FormItem := WebBrowser.OleObject.Document.forms.Item(I);
    for j := 0 to FormItem.Length - 1 do
      try
        //when the fieldname is found, try to fill out
        if (LowerCase(FormItem.Item(j).Name) = LowerCase(FieldName)) or
           (LowerCase(FormItem.Item(j).Id) = LowerCase(FieldName))
        then begin
          FormItem.Item(j).Value := Value;
          Result := True;
        end;
      except
        Exit;
      end;
  end;
end;
Dann funktioniert die Operation mit dem OnDocumentComplete-Ereignis wunderbar:
Delphi-Quellcode:
procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
  const pDisp: IDispatch; var URL: OleVariant);
begin
  FillForm(WebBrowser1, 'Test', 'Test');
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  WebBrowser1.Navigate('http://localhost/test.html');
end;
(Folgende HTML-Date wurde benutzt.)
Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
                      "http://www.w3.org/TR/html4/loose.dtd">
<html>
  <head>
    <title>Test</title>
  </head>
  <body>
    <form>
      <input type="text" id="tEsT">
    </form>
  </body>
</html>
MfG,
d3g
-- Crucifixion?
-- Yes.
-- Good. Out of the door, line on the left, one cross each.
  Mit Zitat antworten Zitat
Benutzerbild von Jan
Jan

Registriert seit: 24. Sep 2002
Ort: Magdeburg
491 Beiträge
 
Delphi 7 Enterprise
 
#8
  Alt 2. Jan 2003, 21:21
Hallo d3g,

Zitat von Jan:
Hallo Chakotay1308,
leider nein, wenn ich die Anfrage über einen Buttonklick sende, dann funktioniert sie einwandfrei, aber ondownloadcomplete und onnavigatecomplete resultieren in exeptions.
Gruß
Jan
Wie ich da schon geschrieben habe funktioniert das Ausfüllen ganz wunderbar, wahrscheinlich weil ich keine vorgefertigte Prozedur von Swissdelphicenter benutze :]
Ich nehme halt wie vorher schon mal erwähnt an, dass das deswegen so ist, weil das Formular in einem Frame ist, kann das sein?
Gruß
Jan
Jan
Wenn die Sonne der Kultur tief steht, werfen auch kleine Gestalten lange Schatten.
  Mit Zitat antworten Zitat
Benutzerbild von Jan
Jan

Registriert seit: 24. Sep 2002
Ort: Magdeburg
491 Beiträge
 
Delphi 7 Enterprise
 
#9
  Alt 3. Jan 2003, 17:46
Na los leute, da weiss 100% einer rat!! BIIIIITTEEEEE!! Meim komplettes Programm funktioniert schon, bis auf dieses eine Problem.
Wenn ihr mir wenigstens sagen würdet, wie ich überprüfen kann, ob bestimmte Elemente schon existieren, ohne dass ich einen error bekomme, das würde mir vielleicht auch weiterhelfen.
Also strengt mal eure Hirne an, und helft mir mal bitte weiter! :]
THX!!
Jan
Jan
Wenn die Sonne der Kultur tief steht, werfen auch kleine Gestalten lange Schatten.
  Mit Zitat antworten Zitat
masters001

Registriert seit: 23. Dez 2002
78 Beiträge
 
#10
  Alt 13. Jan 2003, 18:48
Das Problem hatte ich auch ich hab das alles in nen try - except block geschrieben!
Also die Fehlermeldung wird so lange verhindert bis die Seite dann richtig geladen ist!
  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 12:38 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