急啊急!快来看看(200分)

  • 主题发起人 主题发起人 深之蓝
  • 开始时间 开始时间

深之蓝

Unregistered / Unconfirmed
GUEST, unregistred user!
请问:鼠标移至<快捷按钮>时,出现的提示是怎么实现的啊?另外还想请教:如果自己做一个浏览器,点击网页中的链接时,我怎么获得该链接的URL?
 
出现的提示可能与你的exe文件相同。
 
提示就是控件的HINT属性,默认显示延迟是2秒,欠可以改的,点击页面就在ONCLICK里写;
 
转贴一段,判断当前浏览器器的页面地址,你参考一下
function URLInfo(sBrowerPrgFile, sServiceName: string; Netscape: boolean; var Title: string): pChar;
{
参数说明:
sBrowerPrgFile: 浏览器exe文件的完整路径名
sServiceName: 浏览器的DDE-Service名字
Netscape是'Netscape',IE是'iexplore'
Title: 返回当前网页的title
返回值: pChar的字符串
}
var
DDEClientConv: TDDEClientConv;
StartPtr, EndPtr: pchar;
browserWinName: string;
begin
result:= #0;
Title:= '';

if (sBrowerPrgFile = '') or (not FileExists(sBrowerPrgFile)) then
raise EBrowserNotFoundError.create('****!浏览器应用程序不存在!');

ddeClientConv:= TDDEClientConv.Create( nil );
try
with ddeClientConv do
begin
ServiceApplication := sBrowerPrgFile;
SetLink( sServiceName,'WWW_GetWindowInfo');
StartPtr:= RequestData('0xFFFFFFFF');
end;
finally
ddeClientConv.Free;
end;

if startPtr^ = #0 then
exit;
{skip leading "}
inc(StartPtr);
EndPtr:= StartPtr;
{proceed to next "}
while (EndPtr^ <> '"') do
inc(EndPtr);
{terminate URL string}
EndPtr^:= #0;
result:= StartPtr;
{skip ","}
StartPtr:= EndPtr+3;
if Netscape then
inc(StartPtr,12);

EndPtr:= StartPtr;
if Netscape then
while (EndPtr^ <> ']') do
inc(EndPtr)
else
while (EndPtr^ <> '"') do
inc(EndPtr);

EndPtr^:= #0;
Title:= strPas(StartPtr);
end;
 
恩,真是这样啊,提示就显示了。
to app2001
如果用WebBrowser做的浏览器怎么实现呢?先谢了!
 
页面中所有的链接
procedure TForm1.Button1Click(Sender: TObject);
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;
 
我在这儿谢了,分送出请收下
 
后退
顶部