function GetAllWebLinks(szWebAddress: string): TStrings;
function GetAllWebLinks(szWebAddress: string; depth: integer): TStrings; overload; //Depth 为网站搜索深度(递归深度)。 函数返回用的TStrings变量如何释放内存?
function GetAllWebLinks(szWebAddress: string; depth: integer): TStrings; overload; //Depth 为网站搜索深度(递归深度)。 函数返回用的TStrings变量如何释放内存?
解决方案 »
- delphi窗口移动问题
- 用友cell如何显示数据库记录,急,急,急!
- 函数的引用问题
- 今日开始学习delphi,大家捧捧场,散分!
- 一个修改密码的程序,我想修改一个人的密码,但用了这程序后,所有人的密码都改了,而且是相同的。
- 关于Delphi里面点击一个控件,出来的那个8个点的矩形框
- 向各位请教一个简单的SQL语句问题(为什么我问题提好后2分钟就到第二页是去了,请版主手下留情啊)
- 如何取得方法函数的指针??应该能实现阿, 苦闷!!!!
- 快来看
- 如何关闭一个被word或写字板打开了的txt文件?
- ==就这么点分数了:关于Oracle,Delphi,安装制作的问题?(高手请进)===
- 帮我看看这段代码,问题出在什么地方。谢谢
free的问题楼主问过的吧,你可以这样做:
astringlist:=getallweblinks();
使用astringlist;
astringlist.free;
这样使用前不经create,astringlist其实是你的函数中创建的。
主 题: 我按照《程序员大本营2001 Borland版》第68页做的《使用Internet Explor在Web 页面中查找所有的链接》程序无法运行!(Win98+IE5.5+Delphi5)出现以下错误提示:Project FindingLinks.exe...
//----------------------------
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, OleCtrls, SHDocVw;type
TForm1 = class(TForm)
wb1: TWebBrowser;
Panel1: TPanel;
Edit1: TEdit;
Memo1: TMemo;
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure wb1DocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;
implementationuses MSHTML;{$R *.DFM}procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if (Edit1.Text <> '') and (Key = #13) then
wb1.Navigate(Edit1.Text);
end;procedure TForm1.wb1DocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
var
Doc:IHTMLDocument2;
ElementCollection:IHTMLElementCollection;
HTMLElement:IHTMLElement;
I:Integer;
AnchorString:string;
begin
Memo1.Clear;
Doc:=wb1.Document as IHTMLDocument2;
If Doc = nil then
raise Exception.Create('不能转化为 IHTMLDocument2');
ElementCollection:=doc.all;
for I:=0 to ElementCollection.length-1 do
begin
HTMLElement:=ElementCollection.item(I,'') as IHTMLElement;
if HTMLElement.tagName ='A' then
begin
{AnchorString:= HTMLElement.innerText;
if AnchorString='' then
AnchorString:='(Empty Name)';
AnchorString:=AnchorString+'-'+(HTMLElement as IHTMLAnchorElement).href;
Memo1.Lines.Add(AnchorString);}
Memo1.Lines.Add((HTMLElement as IHTMLAnchorElement).href);
end;
end;
end;end.
var
i: Integer;
begin
for i := 0 to Webbrowser1.OleObject.Document.links.Length - 1 do
Listbox1.Items.Add(Webbrowser1.OleObject.Document.Links.Item(i));
end; 对于多个Frame的页面,可以采取下面的代码:
procedure TForm1.Button2Click(Sender: TObject);
var
i: Integer;
begin
Listbox1.Clear;
//if frames available
if Webbrowser1.OleObject.Document.Frames.Length <> 0 then
begin
//walk through all frames and get the url
//to the Listbox
for i := 0 to Webbrowser1.OleObject.Document.Frames.Length - 1 do
begin
Listbox1.Items.Add(Webbrowser1.OleObject.Document.Frames.item(i).Document.URL);
end;
end;
end;