好简单,但我没做过,想捡分的请进来(50分)

  • 主题发起人 主题发起人 94132195
  • 开始时间 开始时间
9

94132195

Unregistered / Unconfirmed
GUEST, unregistred user!
我想在一个界面上摆上我公司的网址,然后一点网址就能链接打开我公司的网页?
 
我有一个VCL,你可以看看!
unit kqNetLabel1;

interface

uses
Windows, Messages, SysUtils, Classes, Controls, StdCtrls,shellAPI,Graphics,
forms,Dialogs;

type
THyperLink = (hlHTTP, hlMail, hlTelnet, hlGopher, hlNews, hlFTP);


type
TkqNetLabel1 = class(TLabel)
private
{ Private declarations }
FHyperLinkKind: THyperLink;
FHyperLink: string;
FHLinkColor: TColor;
FVLinkColor: TColor;
// 定义私有类型的变量,分别作为属性HyperLinkKind、HyperLink、HLinkColor和VLinkColor的数据域
FColor: TColor; //私有变量FColor用作存放颜色值的临时变量
procedure CMMouseEnter(var AMsg: TMessage); message CM_MOUSEENTER;
procedure CMMouseLeave(var AMsg: TMessage); message CM_MOUSELEAVE;
// 定义Windows消息处理函数,分别处理鼠标消息CM_MOUSEENTER和CM_MOUSELEAVE


protected
{ Protected declarations }
public
{ Public declarations }
constructor Create(AOwner: TComponent); Override;
// 重载TLabel的构造方法,在新声明Create方法中对TNetLabel控件的属性进行初始化
procedure Click; override;
// 重载TLabel祖先TCustomLabel中的Click方法,在新声明的Click方法中实现超链接调用

published
{ Published declarations }
property HyperLinkKind: THyperLink read FHyperLinkKind write FHyperLinkKind default hlMail;
// 声明属性HyperLinkKind,采用直接读写私有数据域FHyperLinkKind的值,并用关键词default定义缺省值为hlMail
property HyperLink: string read FHyperLink write FHyperLink;
// 声明属性HyperLink,采用直接读写私有数据域FHyperLink的值
property HLinkColor: TColor read FHLinkColor write FHLinkColor default clBlue;
// 声明属性HLinkColor,采用直接读写私有数据域FHLinkColor的值,并定义缺省值为clBlue
property VLinkColor: TColor read FVLinkColor write FVLinkColor default clNavy;
// 声明属性VLinkColor,采用直接读写私有数据域FVLinkColor的值,并定义缺省值为clNavy

end;

procedure Register; // 此过程由Delphi生成源代码框架时自动生成

implementation

procedure Register;
begin
RegisterComponents('Samples', [TkqNetLabel1]);
end;

procedure TkqNetLabel1.CMMouseEnter(var AMsg: TMessage);
begin
FColor:= Font.color; // 存储初始颜色值到临时变量FColor中
Font.color := FHLinkColor; // 设置文字标签颜色为属性HLinkColor中的颜色
Font.style := Font.style + [fsUnderLine]; // 添加文字标签的字体修饰属性为有下划线
end;

procedure TkqNetLabel1.CMMouseLeave(var AMsg: TMessage);
begin
Font.color := FColor; // 恢复初始文字标签的颜色
Font.style := Font.style - [fsUnderLine]; // 恢复初始文字标签的字体属性
end;

constructor TkqNetLabel1.Create(AOwner: TComponent);
begin
inherited Create(AOwner); // 继承调用TLabel的Create方法
FHyperLinkKind := hlMail; // 初始化私有变量
FHyperLink := 'sgp_kq@msn.com';
FHLinkColor := clBlue;
FVLinkColor := clNavy;
with self do
begin
cursor := crHandPoint; // 初始化TkqNetLabel的鼠标指针为手形
caption := FHyperLink;// 默认时TNetLabel的Caption属性与HyperLink属性内容相同,但在使用该控件时可以设置为不同的字符串。比如:Caption置为“给我写信”,而在HyperLink属性中将超链接设置为邮箱地址,如zhangzhen@263.net
Font.Color := clMaroon; // 初始化TNetLabel的字体颜色为clMaroon
FColor := Font.color; // 存储初始颜色值到临时变量FColor中
end;
end;

procedure TkqNetLabel1.Click;
begin
inherited Click; // 继承调用TLabel的Click方法
if FHyperLink <> '' then
begin
case FHyperLinkKind of
hlHTTP : ShellExecute(parent.handle,nil,pchar('http://' + FHyperLink),nil,nil,sw_shownormal);
hlMail : ShellExecute(parent.handle,nil,pchar('mailto:' + FHyperLink),nil,nil,sw_shownormal);
hlFTP : ShellExecute(parent.handle,nil,pchar('ftp://' + FHyperLink),nil,nil,sw_shownormal);
hlNews : ShellExecute(parent.handle,nil,pchar('news:' + FHyperLink),nil,nil,sw_shownormal);
hlGopher : ShellExecute(parent.handle,nil,pchar('gopher://' + FHyperLink),nil,nil,sw_shownormal);
hlTelnet : ShellExecute(parent.handle,nil,pchar('telnet:' + FHyperLink),nil,nil,sw_shownormal);
// 调用Windows API函数 ShellExecute,实现超链接调用
end;
FColor := FVLinkColor;
// 将VLinkColor属性中访问后超链接文字标签的颜色保存在变量FColor中,以便在CMMouseLeave消息处理程序中重新设置文字标签的颜色
end;
end;



end.
 
在delphi面板上拖一控件:WebBrowser放在窗体上,然后在程序中写入:
WebBrowser1.Navigate('http://163.com');
就能打开网页!!

如果是做链接,比如单击某一按钮,将打开一个网页,见下:
在uses单元中加入:ShellApi

procedure TForm1.Button1Click(Sender: TObject);
begin
ShellExecute(handle,nil,pchar('http://163.com'),nil,nil,sw_shownormal);
end;
 
楼上的组件够用 或简单点 :

ShellExecute(handle,nil,pchar('你公司网址'),nil,nil,sw_shownormal);
 
直接把网址写在label中,通过mousemove 事件改变颜色,mousedown事件调用api函数连接就可以了
 
多人接受答案了。
 
后退
顶部