说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

自制THyperLink组件-Delphi资料

HTML文档下载 WORD文档下载 PDF文档下载
自制THyperLink组件-Delphi资料

很多软件在其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.');

ERROR_BAD_FORMAT: ShowMessage( 'The .EXE file is invalid

(non-Win32 .EXE or error in .EXE image');

SE_ERR_ACCESSDENIED: ShowMessage( 'The operating system

denied access to the specified file.');

SE_ERR_ASSOCINCOMPLETE: ShowMessage( 'The filename

association is incomplete or invalid.');

SE_ERR_DDEBUSY: ShowMessage( 'The DDE transaction

could not be completed because other DDE transactions

were being processed.');

SE_ERR_DDEFAIL: ShowMessage( 'The DDE transaction failed.');

SE_ERR_DDETIMEOUT: ShowMessage( 'The DDE transaction

could not be completed because the request timed out.');

SE_ERR_DLLNOTFOUND: ShowMessage( 'The specified

dynamic-link library was not found.');

SE_ERR_FNF: ShowMessage( 'The specified file was not found.');

SE_ERR_NOASSOC: ShowMessage( 'There is no application

associated with the given filename extension.');

SE_ERR_OOM: ShowMessage( 'There was not enough

memory to complete the operation.');

SE_ERR_PNF: ShowMessage( 'The specified path was not found.');

SE_ERR_SHARE: ShowMessage( 'A sharing violation occurred.');

else

if(RtnValue < =32) then ShowMessage( 'Unknown

Error in ShellExecte.');

end;

Result := RtnValue;

end;

procedure Register;

begin

RegisterComponents('Tools'

[THyperLink]);

end;

end.

由于THyperLink内部使用ShellExcute函数来打开网页,而ShellExcute函数的特点是可调用与给定文件相关联的应用程来打开该文件,所以在属性URL中设置其它类型的文件(如E-mail地址、文本文件、图像文件,甚至是数据库文件),只要用户的计算机内有相应程序,ThyperLink就能打开该文件。不过E-mail地址应写成mailto:1234@5678.com这样的型式。以下是一简单的示例程序:

unit sample;

interface

uses

Windows

Messages

SysUtils

Classes

Graphics

Controls

Forms

Dialogs

Menus

StdCtrls

HyperLink;

type

TForm1 = class(TForm)

HyperLink1: THyperLink;

MainMenu1: TMainMenu;

Help1: TMenuItem;

BorlandHomePage1: TMenuItem;

procedure BorlandHomePage1Click(Sender: TObject);

end;

var

Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.BorlandHomePage1Click(Sender: TObject);

begin

HyperLink1.Browse('http://www.borland.com');

end;

end.

因为ThyperLink组件的父类是TCustomLabel组件,所以它拥有TCustomLabel的全部属性、方法、事件,这就是说如果需要的话,你可直接使用它们。

【云先锋 41】上海越诚:基于云服务的建站类iService软件超市 董西成:Hadoop将在高速发展和完善中扩大优势! 【走近讲师】 华云数据郁珉:公有云市场八仙过海 价格不是唯一标准! Facebook、Twitter、Google移动广告之争 开发者的黄金时代=运维人员的恶梦? 研发团队平稳度过“从小到大”并非易事 诺基亚品牌手机不久将消失 Stephen Elop回应不是木马 看七家科技公司Logo的最初模样 移动UI框架Fries:私人定制最Sexy的用户界面 必须Mark!最佳HTML5应用开发工具推荐 百度技术开放日感悟:看百度如何获取大数据时代的“船票” 谷歌亚马逊微软的烧钱游戏 拉手网CTO官冲:团购网在大数据应用上的探索 究竟谁真正关心比特币,不妨看看基于大数据的百万条推特分析 Firefox 29正式版:高度自定义模式、全新菜单和Australis UI 冼茂源:HBase在垂直搜索业务以及数据存储中的应用! 阿里云计算北京布点 全球第三个云数据中心开放 【走近讲师】友友天宇CEO姚宏宇:与行业结合是私有云厂商的重要出路 万亿移动支付产业的难点和痛点 削减硬件运营成本?亚马逊或自主研发ARM架构芯片 开源框架eMobc:XML开发原生移动应用so easy iOS应用安全开发,你不知道的那些事 市场化API的十个捷径 MongoDB和Cloudera结盟,欲征服大数据市场 红帽收购Inktank,将统一Gluster与Ceph? 那些巨头公司Logo是这么演变来的…… 以史为镜,剖析PaaS大迷局 “心脏出血”还不够?又曝OAuth和OpenID登录漏洞 走近讲师:搜狐于顺治讲述搜狐PaaS云平台实践之路 AppFlood 2014 Q1报告:亚洲和中东市场成为开发者出海首选 华为联合运营商构建能力开放平台 请哪位网友,给我寄一个Jeode的JAVA虚拟机把,不甚感谢 分不是问题,少了可以再加 如何建立一个对象数组 winexec启动/关闭外部程序的问题 多组数据保存到文件和提取的问题!!(第3遍发问了,帮忙看看啊!)谢谢谢谢!!!!! CRecordSet可以执行SQL语句吗 >>>>>超难度问题<<<<<怎样在屏幕上锁定一个移动的物体并得到它的x,y坐标 用ADO访问数据库时,如何拼写动态SQL 麻烦给发个Jbuilder7的注册机,注册码不会用不要!急! 请问在ASP中调用DLL到底需不需要注册,我怎么看有的需要注册,有的不需要! ASP 0115 ??错误,怎么办?急 OLE 文档序列化!请大虾指教! 双硬盘????,郁闷中。。。在线等 批量数据写入,是否有简捷的方法 请问谁有1、美达S693A2主板光盘;2、还有美达p4vad主板,是什么显卡? 用java weblogic.ejbc编译时为何总报找不到.xml文件 ftp的问题 请问各位:如何在ASP.NET中打开一个现有的或一个新的WORD文档? 讨论怎么发财 关于查询系统的需求分析怎么写?用触摸屏实现 如何把一个文件保存到数据库中? 耦合 哪里有WEB合同管理代码?或资料?演示?急!!!谢谢!有人知道吗?? 谁能把这段代码破解 求一函数,在线等....... 剛&#24478;vb轉delphi,&#24171;我看一看!結貼&#24456;&#24555;! 如何可在WINXP中改MAC?? sprintf(a,"%2X",b)问题 关于简单的access查询 java字符转换问题!!! 请教一个Struts标记问题! 一个cab下载的错误信息解读,请教高人。 OutLook?怎么用它发邮件,经常提示错误? 帮看这段删除纪录代码有什么问题?三层结构oracle 本人要做一个WEB合同管理平台,由于以前没做过,请大家指示? Web Application 中怎么来调用 Web Server?谢谢! DataGrid中模板列嵌套的DataGrid怎样相应其事件 [调查]程序员证在你们公司里到底有多大的作用?有多少人有证?希望有没有证的都进来说一下。 怎样把字符串"C;\aaa\bbb"变成字符串"C:\aaa\ccc\dd"?用什么函数,操作? 我的SQL Server 装好后,出现下面的错误 这个文件查找真是怪!......msdn源代码居然有问题, 进来看看... 请问在TreeView控件中如何通过光标的上下移动获得光标所在项在数据库中的ID值 對掌上電腦Sony Peg-TG50和ACER N10怎麼看??? 使用SOAP协议传递服务器端查询结果容量问题? 菜鸟问题:数据窗口怎么设置检索参数?急!!在线等 ****入门提出的问题****,请各位高手指教! 很简单的一个问题。 这个问题怎么处理? vb如何调用一个组件?? 一个小问题,可不简单哦! 应聘CMM时,会被问到什么有关CMM的问题? 一道有关染色体排列组合的统计题题目大概是这样的:染色体基因(?)有四种 A T G C 用这四个字母组成一条十个字母的染色体 相同字母不同顺序的算是不同的染色体 但是如果顺序颠倒的话 跟踪练习五,回答既给好评 给下列广告消毒 恢复这些成语的原貌1、某消炎广告词:快治人口【 】2、某止咳广告词:咳不容缓【 】3、某自行车广告词:骑乐无穷【 】4、某保温杯广告词:有口皆杯【 】 马有几条染色体?如题 练习五.8.用棱长1cm的小正方体摆成稍大一些的正方体,至少需要多少个小正方体? 活的大闸蟹如何保鲜 我的电话早上坐公交时被偷了,新疆人干的!英文翻译 怎样快速写离子方程式?看到一个反应不用化学方程式就可以写离子方程式的 如何把长气球弄成动物造型 人们常说的染色体是什么啊 求练习五的答案! 大闸蟹怎么保鲜 女人喝白酒好么? 练习五的成语练习五的所有成语意思 大闸蟹怎样保鲜 已知数列An的通项公式为An=(2/3)的n-1次方乘以【(2/3)的n-1次方-1】,则最大值?最小值是? heip me 全对给100将下列物质分别按混合物,纯净物;单质,化合物,氧化物分类1空气 2氧气 3水蒸气 4二氧化碳 5高锰酸钾 6铁粉 7氮气 8氧化铁 关于大闸蟹保鲜问题我想邮寄给朋友大闸蟹,朋友在上海,我在常熟,如何才能使大闸蟹不死亡 同源染色体出现方式同源染色体是否可以单独存在而非成对存在?同源染色体的结构是X还是XX? 离子方程式的书写是否需要写上发生条件比如一个离子反应的发生需要催化剂 需要在离子反应方程式上写出来吗?举个例子吧 要写催化剂的 求歌词:歌词oh wa ou sister oh oh oh 歌名 一na可不可以理解为一mol, 人生若只如初见,何事西风悲画扇?等闲变却故人心,却道故人心易变!这个世界还有沧海桑田吗?这个世界还有沧海桑田吗? 罗西尼的机械表怎么样罗西尼的这款表怎么样7419W03C 我们这2300元 机芯好么 是这个好 还是西铁城的光动能好呢 想买个两千多的 如果人的命已经注定,当知道这个事实生活的意义又是什么?有些人不相信,我也不想相信,但问题是这些东西是能算出来的,而且很准啊,这怎么解释呢,性格,生活水平,工作都可以算出来,那不就说 中共八七会议的主要内容 请问罗西尼的机械表怎么样啊?走时准确吗? 当你说需要个夏天我会拼了命的努力 当你说需要个夏天我会拼了命的努力,我说的是这句话,他想要夏天,另外一个为什么要努力呢? 八七会议的主要内容? 一年之计在于春这句话的含义 化学计量中什么时候用mol什么时候用NA 即墨实验高中高一语文课本里都有什么需要背的课文? 八七会议确定的党的总方针是?急要.有人知道么 请问B型血的人,有什么不适合吃的食物吗? 功w=fs,s是时间还是距离?w有用=fs,s是时间还是距离?晕了 请问“纯电能”有用吗 B型血的人不能吃什么东西? 关于W=FS的问题.请问一下F等于啥? 纯电能汽车还不能大量应用的主要技术或资源困难是什么. B型血的人应该吃什么求解答 在水平匀速拉动物体,η=W有用÷W总=fs物÷Fs绳×100%,这里的摩擦力f和拉力F相同吗?为什么? 黄金杠杆比例是什么意思.如果亏了是怎么算的. 为什么说牛蒡茶养人 如何提高油分离器的效率 醉汉骑驴,颠头簸脑算酒帐.艄公摇橹,打躬()()讨船钱----- 女人喝牛蒡茶好吗 构成胃蛋白酶分子的基本单位是? 天通金是什么 什么人不能喝牛蒡茶 八七会议总方针内容 天通金怎么样 女性喝牛蒡茶好吗?牛蒡茶的功效与作用有哪些? 优点和缺点分别是什么? 手机淘宝秒杀出现3个方框和几行文字如图要填什么才对,应该怎么填 牛蒡茶,牛蒡茶哪里的牛蒡茶好,洪北苑牛蒡茶怎么样? 什么时候进行的?有什么优点,有什么弊端? 淘宝上秒杀东西时跳出来的3个方格要填什么 “同源染色体”是“一对”染色体还是“一条”染色体?如题 还有,染色单体,染色体,同源染色体三者的包含关系?常说的XY性染色体是“一条”染色体还是“一对”染色体? 单质的定义 某同学在做电解食盐水的实验时,误用铜棒作两极材料,请判断下列说法正确的是( ).A.完全电解后,得到CuCl2溶液B.电解完全并放置一段时间后,得到蓝色沉淀和NaCl溶液C.电解一段时间后NaCl浓度可 斯里兰卡对新建赌场“亮红灯”抢滩自贸区浙商在行动 不少企业打算到杭马今天上午开跑 开车出行请注意临时瑞安公益组织要求会员缴费 质疑称交钱东京涩谷万圣节上演“僵尸袭城”(组图日本便衣警察街头扫黄被男妓围殴 打成美到令人窒息!日本人气观光地精选 第特稿:逐梦海外 情系祖国——改革开放朝鲜海军军官执行任务时殉职 金正恩前德媒:德美将达成互不监听协议 拟明年温州一电镀工业园内16家企业 350F1年度世界冠军塞巴斯蒂安座驾亮相沈德媒:德美将达成互不监听协议 拟明年“中国梦”拥有世界舞台德媒:德美将达成互不监听协议 拟明年奇数为男偶数是女?2013年是“男性不堪昂贵房租 伦敦上班族住巴塞罗那坐走进马达加斯加塔马塔夫华侨学校世界最贵“粉红之星”钻石亮相纽约 估土耳其买或不买,中国导弹都赢了美摄影师冰冷海水中拍摄企鹅跳水【高清孩子的工资怎么计算重污染解除 双休日春光明媚“半路出家”艺术生遭遇求职难稻花香2号 守义带您寻回本源生活华表原为“诽谤木”不要羞于就诊中信集团2250亿注资中信泰富12亿元比“太太的客厅”成名更早济南中研成功举办“山东省中医皮肤病学中超四队提前出战查查有没有其他慢性病今春麻疹每周新增病例过百诗书一家击败齐娃北京国际山地徒步大会接受报名熔裁一手红魔真的有久了?第二季登场长汀工商设立广告专管员 发现房地产等福建首发旅游景区“清新指数” 游客可
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘