成都市八二信箱 王乐
很多软件在其About窗口或Help菜单中,可让用户通过单击一段文字就能方便地访问某个网页。比如,Delphi的Help中就有可直接访问该公司主页的菜单项。下面介绍的THyperLink组件是用Delphi3.0编制的,可方便地实现上述功能。
THyperLink是基于TCustomLabel组件的,它有以下特性:
属性:
普通Label组件的所有特性,考滤到实际用途只公布了Caption、Color、 Cursor、 Enabled、 Font、 Hint、 ShowHint、 Visible等属性,其中Font属性在构造函数中被初始化为蓝色带下划线字体,Cursor被置为手型鼠标。别外,增加了URL属性用于存贮网址。在组件内部接管了OnClick事件,用于实现用户单击后调用默认浏览器打开URL中指定的网页,处理各种错误,并将Font属性置为紫色。
方法:
Function Browse(AURL: string): Integer;
{ AURL为网址或文件名。}
事件:
OnClick; { 响应用户鼠标单击动作。 }
具体源码如下:
{ THyperLink VCL, Version 1.0
This is freeware. If you make cool changes to it,
please send them to me(1234@5678.com).
}
unit HyperLink;
interface
uses
Windows, Messages, SysUtils, Classes,
Graphics, Controls, Forms, Dialogs,
ShellAPI, Stdctrls;
type
THyperLink = class(TCustomLabel)
private
FURL: string; // 存贮网址或文件名
FOwnerHandle: HWND;
protected
procedure DoOnClick(Sender: TObject);
// 处理用户单击鼠标
public
constructor Create(AOwner: TComponent); override;
Function Browse(AURL: string): Integer;
published
property Caption;
property Color;
property Cursor default crHandPoint;
property Enabled;
property Font stored True;
property Hint;
property ShowHint default True;
property URL: string read FURL write FURL;
property Visible;
property OnClick;
end;
procedure Register;
implementation
constructor THyperLink.Create(AOwner: TComponent);
begin
inherited Create(aOwner);
FOwnerHandle := (Owner as TForm).Handle;
OnClick := DoOnClick;
Cursor := crHandPoint;
ShowHint := True;
Font.Color := clBlue;
Font.Style := [fsUnderline];
Font.Size := 10;
end;
procedure THyperLink.DoOnClick(Sender: TObject);
begin
if (not (csDesigning in
ComponentState) and (FURL < >'''')) then
begin
Browse(FURL);
// 调用相应
程序打开URL中的网址、文件
Font.Color := clPurple;
end;
end;
Function THyperLink.Browse(AURL: string): Integer;
var
RtnValue: Integer;
begin
RtnValue := ShellExecute(FOwnerHandle, ''Open'', PChar(AURL),
nil, nil, SW_SHOWNORMAL);
case RtnValue of // 处理各种错理
0: ShowMessage(''The operating system is out of memory
or resources.'');
&n