![]() |
TWebBrowser < undefinierter Bezeichner
Hallo,
ich möchte in einem Thread den TwebBrowser dynamisch erzeugen, allerdings meckert der Compiler das TWebBrowser ein undefinierter Bezeichner wäre.
Delphi-Quellcode:
Die Uses hatte ich auch schon einmal erweitert
uses
Classes, SysUtils; ... procedure TMyThreads.Grabber(Keyword: String; FFirstStep: Integer); var WebBrowser: TWebBrowser; begin WebBrowser:= TWebBrowser.Create(nil); with WebBrowser do try except //nix end; FreeAndNil(WebBrowser); end;
Delphi-Quellcode:
Jemand eine Idee?
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; |
Re: TWebBrowser < undefinierter Bezeichner
Du musst noch die entsprechende Unit einbinden. SHDocVw_TLB müsste die richtige sein...
|
Re: TWebBrowser < undefinierter Bezeichner
Du musst entweder die Unit ShDocVw (ab Professional) oder ShDocVw_TLB (bei Personal, wenn selbst importiert) einbinden.
|
Re: TWebBrowser < undefinierter Bezeichner
oh danke =)
|
Re: TWebBrowser < undefinierter Bezeichner
hmm ein kleines problem hab ich nun aber trotzdem noch,
wenn ich über .navigate eine webseite laden möchte wird diese ohne sleep(); nur teilweise oder gar nicht geladen. kann man dazu irgendwo einen timeout setzen?
Delphi-Quellcode:
procedure TMyThreads.Grabber();
var WebBrowser: TWebBrowser; begin OleInitialize(nil); WebBrowser:= TWebBrowser.Create(nil); with WebBrowser do try WebBrowser.Navigate('http://test.com'); sleep(2000); except //nix end; FreeAndNil(WebBrowser); OleUninitialize; end; |
Re: TWebBrowser < undefinierter Bezeichner
Neue Frage, neuer Thread!
Zitat:
Delphi-Quellcode:
dann kannst du nachher nur "Navigate('...');" schreiben, ohne vorangestelltes "WebBrowser". ;)
with WebBrowser do
Und "sleep" friert das ganze Programm ein, schau lieber mal nach ![]()
Delphi-Quellcode:
Sollte man auch nicht verwenden, siehe dazu
try
... except //nix end; ![]() Du kannst auch warten, bis die Seite komplett geladen ist, mittels:
Delphi-Quellcode:
procedure TForm1.wbNavigateComplete2(Sender: TObject;const pDisp: IDispatch; var URL: OleVariant);
const url_google = 'http://www.google.de'; begin cbWeb.Text := lower(wb.OleObject.Document.Url); if (cbWeb.Text = url_google) or (cbWeb.Text = url_google + '/') then begin ShowMessage(cbWeb.Text + ' wurde geladen'); end; end; Edit: Ein paar Tippfehler verbessert. |
Re: TWebBrowser < undefinierter Bezeichner
oh danke für die hilfe,
ich werd versuchen zukünftig deine ratschläge zu beherzigen =) eine frage hab ich allerdings trotzdem noch *gg* wenn ich versuche in einem thread ein formular (z.b. google.com) auszufüllen dann gibt es eine zugriffverletzung an dieser stelle:
Delphi-Quellcode:
Exception der Klasse EAccessViolation
WebBrowser.OleObject.Document.forms.Item(0).Item('g').Value := 'internet';
|
Re: TWebBrowser < undefinierter Bezeichner
also ich hab nun versucht zu prüfen ob
überhaupt ein formular existiert das ich ausfüllen kann, auch hier erhalte ich eine zugriffsverletzung wenn der thread versucht auf das OLE Objekt zu zugreifen.
Delphi-Quellcode:
das selbe problem stellt sich bei mir auch da wenn ich
if OleObject.Document.all.tags('FORM').Length = 0 then
begin Exit; end; zum testen eine neue anwendung erzeuge
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ShDocVw, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var wb: TWebBrowser; begin wb := TWebBrowser.Create(Form1); TWinControl(wb).Name := 'MyWebBrowser'; TWinControl(wb).Parent := Form1; wb.Align := alClient; wb.Navigate('http://www.google.com'); sleep(2000); if wb.OleObject.Document.all.tags('FORM').Length = 0 then begin Exit; end else showmessage('found'); end; end. |
Re: TWebBrowser < undefinierter Bezeichner
ich versteh das einfach nicht, nun les ich mich seit stunden
durch foren, newsgroups und artikel und hab diverese sourcecodes ausprobiert, aber jedesmal wenn ich auf auf ole objekt zugreifen will gibts den fehler das ist echt zum kotzen :wall: |
Re: TWebBrowser < undefinierter Bezeichner
:warn: Pushen ist erst nach 24 Stunden erlaubt :dp:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:28 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 by Thomas Breitkreuz