Hallo nochmal!
Ich scheine irgendwie zu blöd dafür zu sein, das Script zum Laufen zu bringen.
Mir fehlt für addtolist wohl irgend eine Typendeklaration, aber ich komme nicht
drauf, wie ich AddToList deklarieren soll und ob überhaupt !?
So schaut mein Quelltext momentan aus:
Delphi-Quellcode:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, OleCtrls, SHDocVw;
type
TForm1 =
class(TForm)
WebBrowser1: TWebBrowser;
Button1: TButton;
Button2: TButton;
Memo1: TMemo;
Memo2: TMemo;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
type
TOnExtractLink =
procedure(
const URL:
string)
of object;
// Extract all Links from Document
procedure ExtractDocumentLinks(Document: IDispatch; callback:TOnExtractLink);
// Extract all Links from Browser's Document
procedure ExtractWBLinks(WebBrowser: TWebBrowser; callback:TOnExtractLink);
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure ExtractDocumentLinks(Document: IDispatch; callback:TOnExtractLink);
var
doc, links, link : OleVariant;
i : Integer;
begin
doc := Document;
links := doc.links;
for i:=0
to links.Length-1
do
begin
link := links.item(i);
callback(link.HREF);
end;
end;
procedure ExtractWBLinks(WebBrowser: TWebBrowser; callback:TOnExtractLink);
begin
if not Assigned(WebBrowser.Document)
then
Exit;
ExtractDocumentLinks(WebBrowser.Document, callback);
end;
procedure TForm1.AddToList(
const URL:
string);
begin
// hier wäre Gelegenheit, unerwünschte oder doppelte URL auszufiltern
if copy(
URL, 1, 5) = '
http:'
then
Memo1.Lines.Add(
URL)
// hier alle http: URL rein
else
Memo2.Lines.Add(
URL);
// und hier den Rest (ftp:, mailto: ,...)
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
WebBrowser1.Navigate('
http://www.webseite.de');
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
ExtractWBLinks(WebBrowser1, AddToList);
end;
end.
Einzigste Fehlermeldung die ich bekomme ist: "Undefinierter Bezeichner: 'AddToList'",
was ja nun auch logisch ist, da ich es ja nicht deklariert habe, oder habe ich irgend
etwas anderes falsch verstanden?
(Tut mir leid, bin noch am Lernen
. Und habe nun echt lange versucht es selbst zu lösen,
aber komme einfach nicht drauf *verzweifel*)
Grüße,
- M. S.