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

自制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的全部属性、方法、事件,这就是说如果需要的话,你可直接使用它们。

在ActiveX控件工程中设置DataField属性-VB资料 在VB中异步执行程序 在VB编程中有效地组织和利用资源 在VB应用程序中巧用DLL 在VB应用程序中使用INI文件的一点体会 在VB中操纵OLE服务器应用程序 在VB中改变显示器的分辨率 在VB中获取和修改计算机名字 在vb中没有指针,怎样才能将数组作为参数。 在VB中如何调用C++Builder创建的DLL 在VB中设置常用的外部设备 在VB中使用枚举变量 在Visual Basic 中使用C++ 类 在WindowsNT网络中广播消息 -VB资料 在可编辑控件中创建一个新的上下文菜单 -VB资料 在软件中设定热键-VB资料 在注册表中添加自己的文件类型-VB资料 在桌面上建立 Internet 快捷键 -VB资料 在桌面上添加程序的快捷方式 -VB资料 VB怎样得到当前的屏幕分辨率? VB怎样关闭Windows VB怎样关闭一个程序 VB怎样使我的程序总处于屏幕最前方?(Always on top) VB怎样延迟一个VB程序? VB怎样在VB中控制WORD VB怎样找到鼠标指针的XY坐标? 增加快捷方式到启动组-VB资料 直接呼叫RUNDLL来关机-VB资料 VB制作VB安装程序问答(二) VB制作VB安装程序问答(一) VB制作帮助文件速成 在ADOQuery中如何判断当前记录是否已经被删除? 编程高人给个流程图好吗? 谁能大概告诉我一下Vector()这个类是怎么回事?该怎样使用比较合适? 2894~~~~~~ 關於ASP和RS232 DAO编程,代码那里错了?? problems about calling xp_cmdshell proc.I need ur help. 关于Debug问题! 一个小问题,谁解决就给100分。在线等待 修改表里一个字段的类型,怎样写SQL语句? 编程高人给个流程图好吗? 用MAPI怎样取出邮件附件,急用 如何调用计算器啊? 为什么我的机器运行spy++出错啊, 关于网络流量的监控,高分 ***************动态创建DSN中的一个怪问题***************** 除了电脑程序外,还有什么物理性的方法可以清洗喷墨打印机的墨头? 请问这首歌的歌名? xmldom问题。 讨论:给个用XML的理由先,我现在只知道XML可以跨平台,提供数据接口的作用。请大侠讨论一下 如何定义全局变量? 在线等待:在DELPHI中调用windows api 的 SetFocus(),应怎样调用? 关于指针问题 有点搞不懂了!! switch的简单问题 在哪里添加全局函数 两个asp.net问题,请高手一定解答! 关于Treeview的几个问题? 怎样才能实现按返回按钮以后,自动刷新刚刚提交的页面!代码如下,请帮我改改! HELP!!! 请问VB关闭WINDOWS下面的所有窗口的命令是什么?谢谢 数据移植问题,多帮忙呀! 问来问去,也没问出个所以然来。干脆再简化一下问题吧。 如何制做帮助文件? 一个XML绑定数据集的问题? 多层数据库一问!!!!!!!!!!!!!!!!!!!!!!!!!! 关于winvnc(在线等待) 请问“数据结构”这门课主要是学什么的? 这个毛病是什么原因?(加急,肯请赐教) 在线等候?自定义控件问题? 请问知道进程的ID值和句柄,能否控制程序窗口的大小? 多层数据库疑问!!!!!!!!!!!!!!!!!!!!!!!!!!! 关于IBM AS/400 DB2数据库编程 怎么从_streamptr 中恢复 recordset? 与数据库建立联接的后续问题 早上偶然看见前女友从眼前走过,突然有种莫名的感动 歌词和音乐同步问题?winnap的歌词插件基于什么样的原理做出来? 一个菜鸟的苦恼!! 用命令行配置IIS的命令是什么? 看看这个程序到底错在哪? 查找点对象问题,各位进来帮我看看 关于12mm玻璃我有个问题想问下您我买了一个1500*550*800的鱼缸 鱼缸底下有一圈拉筋玻璃厚是12mm 之前我在缸底铺了一层约5厘米厚的小石子挺小的那种 每个大概能有小指甲盖那么大吧 当时缸里 在平面几何中,对于Rt△ABC,∠C=90°,设AB=c,AC=b,BC=a则 (1)a^2+b^2=c^2,(2)Cos^2A=Cos^2B=1在平面几何中,对于Rt△ABC,∠C=90°,设AB=c,AC=b,BC=a则(1)a^2+b^2=c^2,(2)Cos^2A=Cos^2B=1(3)Rt△ABC的外接圆半径为r=根号(a^2+b^2)/2把 三峡大坝设计高度175m,当水位达到150m时,坝底所受的压强是多少? 阳光房顶面玻璃有很多冷凝水,多的时候就像下雨是的往下滴,怎么解决一下,大概有33平米我是开餐厅的,这个顶面在店里的四周,宽2.8米,离地面4.2米高.有没有什么玻璃膜之类的,贴上就防雾了--- 在Rt△ABC中,∠C=90°,AC=9,BC=12,则点C到AB的距离是多少? 非齐次方程特解与对应齐次方程特解差仍为非齐次的特解吗?全书只说了其和为非齐次的特解,可是在题中答非齐次方程特解与对应齐次方程特解差仍为非齐次的特解吗?全书只说了其和为非齐 我想发酵鸡粪,我想知道具体的流程,鸡粪夏天发酵含水量控制在多少,发酵后的鸡粪需要粉碎吗? 怎么求反比例函数的值小于一次函数的值时x的取值范围 如图所示,匀强磁场竖直向下,磁感应强度为B,正方形金属框abcd可绕光滑轴OO`转动,边长为L,总电阻为R,ab边质量为m,其他边质量不计,现将ABCD拉至水平位置,并由静止释放,经时间t到达竖直位置,产 我家是一楼,一下雨就会反水、、地上全是水...怎么办呀、、 “来如流水兮 逝如风 不知何处来兮 太阳风暴是超声波辐射吗 搞不清楚高数同济六版到底哪些章节不考.有人跟我感觉一样吗?对着考纲,还是不太清楚哪些章节考哪些章节不用看, 根据图象写出使一次函数的值大于反比例函数的值的x取值范围 其中n=-2 三峡大坝内水位达到175米时,水面下25米,水对坝压强是?船底在水面下10米,1平方厘米上受到水的压力是?长江三峡大坝内水位达到175米时,在水面下25米深处,水对坝的压强大小是?如果船底在水面 下雨时板鞋进了水 晒干后总有股异味 洗了好几次都没用 怎么去掉那股异味 来如流水兮逝如风,飘飘入世,如水之不得不流,不知何故来也不知何所终. 有关超声波发射的问题……我目前在做一个有关超声波测距的设计,发射功率与距离的关系,比如我要做大概3-5米的测量,那么超声波要做多大的功率啊? 我现在手里有同济5版的高数上下册,同济四版的线性代数,浙三版的概数,我考数学三,哪些章节不用看?千万不要复制2010年前的老答案啊~ 写出一次函数的值大于反比例函数值x的取值范围,意思是什么? 如图所示,竖直面内放置的两条平行光滑导轨,电阻不计,匀强磁场方向垂直纸面向里,磁感应强度B=0.5T,导体棒节ab、cd长度均为0.2m,电阻均为0.1Ω,重力均为0.1N,现用力向上拉动导体棒ab,使之匀速上 根据图像怎样确定反比例函数大于或小于一次函数的x取值范围 来如流水兮逝如风,不知何时起兮何处终什么意思 =SUMIF($N$3:$IV$3,"*件数*",N4:IV4) 在电脑上怎么操作这个公式 植物的生长主要依赖于_______,________,________,________等环境因素 “来如流水逝如风,不知何来兮,何所终”出自哪里 如图所示的电路中,电源电压为U=60V,内阻不计,电阻R=2欧姆,电动机的内电阻R1=1.6欧姆,电压表的示数为50V.求电动机的输出功率(R在干路,R1和电压表并联,图画不出来, 一次函数与反比例函数的图象相交于A.B两点,则图中使反比例函数的值小于一次函数的值的X的取值范围是A点坐标为(-1,2)B点的坐标为(2,-1) 来如流水兮逝如风、不知何来兮何所终了.的作者是谁? 为什么太阳光谱中的暗线不是地球大气吸收的结果 大自然的小报 植物生长依靠的是( )能 超声波有辐射么 对孕妇有影响么 航天飞船返回仓是怎么落地的? 并刀如水什么意思 (8/9xy^2-4/3x^2y)*(9/4x^2y^2)+3x^2y^2*x^2y excel 跨表 条件格式 以颜色为判断我遇到如下难题,望高手们能出嘴相助,如何设置才能让sheet2中的单元格根据sheet1中的单元格是否有底色(单元格底纹)为判断,来决定是否生成底色?例如当sheet1 什么是光谱奇异或者奇异光谱啊?还有什么是奇异相干性?即coherence singularities?我在看个文档coherence singularities in the field generated by partially coherent source,中有关于这个的,请说的详细点,最好发个 液态水的温度范围是多少呢? 韩红的《天亮了》有什么写作背景? 一个圆的半径扩大10倍,周长也扩大10倍. 温度低于10℃是否还存在液态水 什么是一次封测,二次封测,终极封测,压力封测? 一个圆的半径扩大4倍,它的周长和面积是否都随着扩大4倍? 硫在哪个温度范围呈液态? 什么是一次封测,二次封测,终极封测,压力封测? 一次函数与反比例函数的图像相交于AB两点,则图中使反比例函数的值小于一次函数的值的X的取值范围?反比例函数图像经过二、四象限,一次函数图像经过一、二、四象限,A点在第二象限,坐标 竖直放置的光滑U型导轨宽L=0.5m,置于范围很大的磁感应强强度是B=1T的匀强磁场中,磁场垂直于导轨平面,如图所示,质量为m=10g的金属杆ab,无初速度释放后,紧贴导轨下滑(始终能处于水平位置) 什么叫二次封测? 还是那一条 写出使一次函数的值大于反比例函数的值的x取值范围 求:发射有代码的超声波的发生器! 我想用手机接收有代码的超声波,用于测距!找一个可以发送 带有代码的超声波发生器! 什么是一次封测,二次封测,终极封测,压力封测?拜托各位了 3Q我知道网游正式内测前都会有这些测试,有什么作用? 为什么不一次就弄好要测那么多次? 钓鱼指数中气压多少为佳 判断题;线性齐次方程的两解之差仍是原方程的解. 如果用试管加热液体时,试管内液体的量大于容积的三分之一会怎么样 用太阳能的水溢流管就流水是怎么回事 判断题:线性非齐次方程的两解之差是其对应齐次方程的解. 韩红的天亮了 讲的是什么故事 韩红歌曲《天亮了》唱的是什么意思?有什么特殊意义吗? 矩形金属框abcd宽L=0.20m,足够长,质量m=0.10kg,电阻R=0.10Ω.在金属框的正下方有一匀强磁场,磁场方向垂直纸面向里,磁感应强度B=0.50T.开始金属框下端ab正好处于磁场上边缘处,并与磁场边缘平行.现 中缅首部合拍大型电视剧《舞乐传奇》赠摩洛哥召回大使抗议阿尔及利亚总统“挑法国总统奥朗德会见中国外长王毅 谴责美国医改网站频瘫痪 奥巴马打保票负全美无人机再袭巴基斯坦致3人死亡美国F-35战机进行首次对地精确投弹X-CAT摩托艇锦标赛挺进中国 首站中国最透明的安全软件:百度杀毒隐私保肯德基“半价桶”遭遇争论 小薯条代替宁海查获一万多罐假红牛 包装味道都和外国驻韩外交官5年犯法48起 外交豁农业部:农垦有望率先实现农业现代化朴槿惠为韩职棒总决赛开球 穿日本运动美媒揭白宫工作准则:不让总统为坏消息叙利亚总统警告:外国停止支持反对派才杨澜提问郎朗\"工作有何意义\"惹争金华餐饮业遭遇寒流 高档酒店与农家乐奥巴马医改网站安全漏洞细节曝光 内测金华看守所推启迪教室 给在押未成年人学者称一线城市过高生活成本让人幸福感能源局发布页岩气产业政策 加大财政扶守 望(版画)人民日报:地方官员换届不再换车换房 我国将建万名优秀创新创业导师人才库第三届中国幼教年会聚焦教育资源均等化放射性铯继续在东京湾河口蓄积墨西哥“中国文化年”拉开序幕“历史和人民将记住他”环青海湖普氏原羚大增账目不清折射日本政客腐败建立健全电信诈骗防范机制(治理之道)公共文化设施开展学雷锋志愿服务图片报道在帮扶中引导 在服务中管理中国车企,促进与南非产能合作对接难民危机,欧洲抚不平的伤口(国际视点让群众永远“放宽心”(今日谈)为社会制度探索提供中国方案(构建中国中办印发《中国侨联改革方案》安徽拟调低招标药价(延伸阅读)发展权与中国人权事业大发展打击“操纵”要有威慑力(金海观潮)
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘