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

DELPHI控件Tweblabel的编制

HTML文档下载 WORD文档下载 PDF文档下载
DELPHI控件Tweblabel的编制

Internet已经越来越多地渗透到生活的各个方面以及各个领域,许多人都有了自己漂亮的主页,但是,如何简洁而快速地调用这些主页呢?这就是用DELPHI的Tweblabel控件方法。首先来看看这个控件的威力。

上面这个Form窗体中放了三个Tweblabel 控件,你不用编写一句程序,只是简单地把它们拖放到Form 上,改一下网页的地址,就可以运行了。当光标移动到文字上时,光标就会自动变成手形,用鼠标轻轻地点击一下,浏览器就会启动,它将把你带到你想去的地方。接下来将引导你一步一步地学习,使你不但要了解这个奇妙的Tweblabel控件,而且要学会如何用DELPHI进行最奇妙的设计即控件编程。

启动DELPHI 3(或者DELPHI 4),菜单上有一个Component,用鼠标单击一下,选择New Component就会弹出一个窗口。有几样东西需要填写,先来解释一下。

Ancestor type:表示被继承的对象,是个下拉框,选TLabel。

Class Name:表示新创建的类的名字,取名为Tweblabel。

Palette Page:表示把Tweblabel放到控件面板上的哪个栏位上,选缺省Sample,也可以选别的,或者干脆取个新栏位名字。

Unit file name:选缺省。

Search path:选缺省。

然后按“Create Unit”按钮。

DELPHI为我们创建了这个单元,并建起了骨架。下面就是用DELPHI编写的代码。

unit weblabel;

interface

uses Windows

Messages

SysUtils

Classes

Graphics

Controls

Forms

Dialogs

StdCtrls;

type

Tweblabel = class(TLabel)

private

{ Private declarations }

protected

{ Protected declarations }

public

{ Public declarations }

published

{ Published declarations }

end;

procedure Register;

implementation

procedure Register;

begin

RegisterComponents('Samples'

[Tweblabel]);

end;

end.

DELPHI的Unit分为两个部分,一个是interface(界面),另一个是implementation(实现)。并且类的定义分private、protected、public、published几个,前面三个是类固有的,published则是控件特有的,其中的变量可以显示在DELPHI的控件编辑器里。

有了DELPHI编写的控件的骨架之后,又该如何添加代码呢?我们需要做以下几件事情:

1.需要一个变量存放Internet主页的地址;

2.需要一个函数来完成调用浏览器访问Internet主页;

3.需要初始化这个Tweblabel,比如字体、颜色、风格使它更像一个链接;

4.当鼠标在Tweblabel上单击时,浏览器就会被启动。

具体作法如下:

1.定义变量

private

{ Private declarations }

//定义一个变量存放HTTP主页的地址

Fhttpaddr:string;

//为了使控件编辑器能够修改它,则加入:

published

{ Published declarations }

property CHttpaddr: string read Fhttpaddr write Fhttpaddr;

//将变量输出到控件编辑器中,名称应该为HTTPADDR,前面加C是为了方便,

//它将直接排列在Caption的下面,方便修改。

2.调用浏览器访问INTERNET主页函数

function ShellExecute(hWnd: HWND; Operation

FileName

Parameters

Directory: PChar; ShowCmd: Integer): HINST; stdcall;

参数定义:

hWnd: 父窗口句柄

Operation: 操作模式 open 或 print

FileName: 文件名指针

Parameter: 传递给执行文件的参数

Directory: 缺省目录

ShowCmd: 程序启动后的状态:(1)SW_SHOWNORMAL 正常 (2)SW_MINIMIZE 最小 (3)SW_MAXIMIZE 最大

不考虑错误判断,打开一个WEB页面的例子:

ShellExecute(handle

'open'

'http://www.microsfto.com'

nil

nil

SW_SHOWNORMAL);

函数ShellExecute包含在单元ShellAPI中。为了处理各种情况,我们定义了一个过程。

public

procedure ExploreWeb(handle:HWND ; page:PChar);

具体代码使用Robert Vivrette先生编写的程序片段。

procedure Tweblabel.ExploreWeb(handle:HWND ; page:PChar);

var

Returnvalue : integer; //实际调用WEB页面

begin

ReturnValue := ShellExecute(handle

'open'

page

nil

nil

SW_SHOWNORMAL);

if ReturnValue <= 32 then

case Returnvalue of

0 :

MessageBox(handle

'错误:内存溢出!'

'WEB页面出错信息'

0);

ERROR_FILE_NOT_FOUND:

MessageBox(handle

'错误:文件未找到!'

'WEB页面出错信息'

0);

ERROR_PATH_NOT_FOUND:

MessageBox(handle

'错误:目录错误!'

'WEB页面出错信息'

0);

ERROR_BAD_FORMAT :

MessageBox(handle

'错误:EXE文件格式错误!'

'WEB页面出错信息'

0);

// All other errors . See help for more ReturnValues of ShellExecute

else

MessageBox(handle

PChar('错误信息[:'+IntToStr(Returnvalue)+']')

'WEB页面出错信息'

0)

end

end;

3.我们知道,必须重载Create函数才能加入我们的初始化代码。

public

{ Public declarations }

constructor Create(AOwner: TComponent); override;

实现部分:

constructor Tweblabel.Create(AOwner: TComponent);

begin

//调用父辈的CREATE

inherited Create(Aowner);

//以下是自己的初始化代码

//将光标设置为手型

Cursor:= crHandPoint;

//令标题=主页地址

chttpaddr:='http://www.nbip.net/michaeljia';

Caption:=chttpaddr;

//字体缺省大小为10

font.size:=10;

font.color:=clblue;   //字体缺省颜色为兰色

font.style:=[fsUnderline]; //字体缺省风格为下划线

end;

4.要想通过单击Tweblabel来启动浏览器,必须重载CLICK函数,代码如下。

protected

{ Protected declarations }

procedure click; override;

实现部分:

procedure Tweblabel.click;

begin

inherited Click; //调用父辈的Click函数

ExploreWeb(parent.handle

pchar(chttpaddr)); //调用WEB页面

end;

Node.js 打造实时多人游戏框架 深圳微信开发者大会购票企业特征分析 上门汽车服务“e保养”完成A轮500万美元融资 Docker之父Solomon Hykes谈项目开发的初衷和挑战 浪潮是如何实现单日5000台x86服务器交付互联网的? Bootstrap 3.3.0发布 版本4不再支持IE8 漏洞预警:FTP曝严重远程执行漏洞 影响多个版本Unix 【简讯】W3C小组宣布HTML5标准制定完成 AMD发布GPUPerfAPI 2.14,GPU性能检测更Easy! 开放能力升级——微信公众号登陆授权开启公测! 百度最“智能”的新型推荐技术——智能因子分解机 消灭Bug!18款最佳的问题跟踪管理应用程序 Google Analytics为什么会这么快 【MDCC 2014】Xamarin深入体验营——开发实战大揭秘 【MDCC 2014】电信技术专场:运营商与开发者如何合作共赢 【MDCC 2014】高德LBS大赛闭幕式暨颁奖典礼:下一个50亿应用花落谁家? MDCC 2014移动开发者大会开幕:全生态系统齐聚 开发者成主角 蓝港互动有限公司董事长&amp;amp;首席执行官王峰:移动互联网泛娱乐化趋势 多盟联合创始人&amp;amp;总裁张鹤:多盟DSPAN助力开发者高效变现 创新工场联合创始人汪华:移动互联网时代的跃迁式增长 阿里巴巴集团UC移动事业群总裁俞永福:AMAP Inside——更专业、更开放 《程序员+》移动应用上线 启动“2014 MDCC十大人气应用/产品评选活动” 微软开发体验与平台合作事业部大中华区DX部门总经理Srikanth Raju:基于云的跨平台开发 Facebook平台工程合作部亚太区总经理张博:通过Facebook构建下一代移动应用 Vungle工程副总裁Wayne Chan:移动视频广告的未来 友盟副总裁焦岳:2014移动互联网行业趋势&amp;amp;大数据的行业价值与运营支持 联发科技创意实验室副总裁Marc Naddell:以小博大的可穿戴方案 用友软件股份有限公司高级副总裁谢志华:企业互联网移动化触手可及 【MDCC 2014】英雄会晚宴——厉兵秣马,再上征程 移动开发技术与平台峰会(上):流量优化、数据管理、IM、LBS与跨平台开发 【推广、盈利与投资论坛】探寻推广与盈利新趋势 dataset更新。100分 请您支招 通配符 有爱国心的高手快去黑了这个网站 这样的字符串比较怎么做?? 怎样在VB中加入动画? 费时操作是如何估计所花费时间的? 为什么我新装的机器在播放声音和视频文件时速度比原速度快了好多? 怎么样清楚Cookies 如何通过一个链接弹出一个没有标题栏,没有菜单栏,没有地址栏等的新页面? 配置问题,在线等待?分不够再加! MFC基础, 如何实现在CScrollView上, 把某一文本文件显示出来(不用file - new)? 求救:请问哪儿有《Beginning Visual Basic.Net》英文书下载??? 高分100 label 控件刷新问题 如何通过一个链接弹出一个没有标题栏,没有菜单栏,没有地址栏等的新页面? 实现这样一个报表??????? 求救。。。。。Access2000的数据库密码忘了,该怎么办呀!!! 动态产生的列表框,如何让记录按列对齐? 为什么有时自动打开网页,有时却不能? 在JDBTable中如何选中行? 我想让进度条竖着从下往上显示,应该怎么做? 可否知道数据表即将产生记录的标识键值???? 怎样让程序启动时最大化,但又不允许用户再还原或者改变窗口大小,谢谢! 紧急求救!关于ADSL下的固定IP地址访问问题,相关IP地址转发技术 谁见过这种编译错误,怎么办啊? 我的RH7.2不能Telnet ,请帮忙. GPRS 有无条件等待指令吗? 简单的问题_50分。 在vba的编写过程中无法在excel中调用word等其他对象,怎么办?(顶者有分) 事实证明,weblogic会对注释行报错! 一个让人困惑的问题 bcp 的问题 请问:有没有UNIX下的测试工具? 请问一个关于BCB消息MAP的问题... 系统2000,用installshield6.0包了程序,有问题 请问我用VC++做的数据库程序怎样打包在线等待急用, 在控制面斑-- >删除/添加程序 选项中 Win2000和Win98怎么不一样啊 改写了8254后如何得到正确的系统时钟 在别人机子上生成报表时提示出错,除打包安装外有无其他办法? ★ 懂 ORACLE 和 DB2 的高手请进... ★ 求助!!! 100分求小软件 为什么MediaPlayer播放不正常? 关于在向固定格式的Word模版中导入数据的问题,急!!!!!!!!!!!!!!! SQL SERVER 2000简体中文企业版 与 SQL SERVER 2000简体中文标准版 区别 同时装了Win2000和Office2000的朋友,快看看自己的电脑有没有这样的毛病:)送分! 干掉靖国神社..http://www.yasukuni.or.jp/index2.html 在我调试程序时,出现了有关"cs3250mt.dll"文件的出错信息,是怎么回事呢,急死我了!!!大家帮帮我吧!!! 关于windows media 问题,请教了!!! 如何在两个FORM中互相调用控件??? 为什么果胶是植物体内的却由动物的半乳糖醛酸组成呢? 浓硫酸能用作水解用催化剂吗 中秋节虽已过去,但是很多人家还有很多没有吃完的月饼.某同学观察到家中的月饼包装袋内都有一小包干燥剂 由n个半乳糖醛酸合成果胶质体的过程中,会产生多少个水分子A.n B.n-1 C.n+1 D.0 我要公式. 甲酸甲酯水解的催化剂是什么 芳香化学物和脂环化学物如何区分呢? 水果中果胶物质的提取和测定 配制标准溶液时为何要称取0.1205g-水半乳糖醛酸 什么是化纤布 用色标法怎么判别电阻的大小?用色标怎么看电阻大小... 请问果胶酸裂解酶(pectate lyase)与多聚半乳糖醛酸酶(Polygalacturonase)有何区别?感谢tianci3388的回答,我还需要知道裂解酶与水解酶在作用形式上或者使糖苷键断裂的形式有什么区别。另外,果胶 化纤服装是什么材料制成的? 果胶酸法水解机理,为什么不能碱水解 notice board 求速度)山西省存在的主要环境问题是 产生该问题的主要原因是求速度)山西省存在的主要环境问题是 产生该问题的主要原因是 图中①②两项工程比较,①工程的的有 酸法提取橘子皮果胶工艺的优化研究试验的过程 关于经济学的讲点?我们有个选修课要演讲.我不太懂经济.有什么比较简单的讲点.但又不会太普遍滴 化纤布料是不是合成材料 lots of 和 a lot of在用法上有什么区别? 1.基数效用论的分析方法包括边际效用分析和无差异曲线分析方法.A.错误B.正确满分:2 分2.当消费某种物品的边际效用为负时,则总效用达极大值.A.错误B.正确满分:2 分3.MC曲线AC曲线相交于MC 化纤面料好吗 a lot of 和lots of 的用法和区别列举 列举例子 如:用法上有什么不同 用在可数还是不可数的 都要列举一个例句 三Q三Q 甲,乙两个容器共有盐水2600毫升,从甲容器中取出4/1,从乙容器中取出5/1,结果两个容器共剩2000毫升,甲、乙两个容器原来各有多少毫升盐水? _______ the notice board carefully.a.look b.look for c.look at d.look up 半干法脱硫 缺点不懂的不要瞎掰, 甲乙两个圆柱形容器,甲容器中有水2000毫升,乙是空的,现往两个容器里各注入水1600毫升,它们水面的高度相等,已知甲的底面半径9厘米,求乙的底面半径. 培育和保持企业核心竞争力的注意要素 如何看电阻色标? 我们应该遵守哪些生活社会上的规则比如不能闯红灯等等等还有很多但我不知道.快 快 浅谈如何培育企业核心竞争力 电阻器的色标,从哪个方向开始读呀?从左到右,从右到左?呵呵不过,昨天读一个,从这个方向无意义,因为读成"1-0"从另一个方向就可以读出有意义的数字组合. 请你根据所学的知识和实际情况说说生活中我们为什么要遵守规则 Here is a notice___the board.Aon.Bat.Cin 五元环的酯类化合物和六元环的酯类化合物 怎么写出来的根据什么写出来的呢?是CH2OH(CHOH)4COOH 脱水后形成的.怎么写出来呢? 小苏打治痛风有用吗,苏打水对痛风的作用是什么?小苏打治痛风有用吗,苏打水对痛风的作用是什么呢? 民营企业核心竞争力怎么培育? 关于脂环化合物碳的个数问题脂环化合物 CnH2n n趋向于正无穷,能出现这种化合物吗?是形成一个环?多个环?如果不能,又是什么原因呢?如果是杂环呢? 小苏打治痛风有用吗,苏打水对痛风的作用我爹最近痛风犯了,脚肿了好高,而且特别疼,我爹好象吃就是那个别嘌呤醇的药,眼睛好肿呀.  请问这种病吃什么药比较好呢?或者食疗、生活上应该 The announcememt will be__ on the notice board.A.put upB.put offC.put downD.put on 为什么会出现人类? 雷达是利用什么来进行定位和导航 餐饮企业核心竞争力的培育?几篇关于“餐饮企业核心竞争力的培育” 的论文 lot of;lots of;a lot;a lots;a lots of;a lot of的区别 雷达是利用超声波来定位和导航? 色标电阻如何读值 a lot of与lots of的区别是什么? 雷达定位 雷达通过什么定位和导航?. 1K电阻是什么色标.10K电阻是什么色标 a lot of / lots of嗯There is a lot of water.There is a lot of books.There are lots of books.There is lots of water.这是我的猜想.这里的there be句型中的be 是根据a lot of、 lots of 的变化而变,还是根据后面那个名词的变 gps雷达导航仪怎么样?gps雷达导航仪好用吗?gps雷达导航仪那种比较好用? ,^-^为什么会出现人类啊`? lot of、a lot of与lots of的区别 采购中议价后的评估是什么意思 ? 雷达是利用电磁波来进行定位和导航的么输入您的问题 人们穿的化纤面料的服装为什么容易脏? 定价发行与议价发行分别是什么意思啊?我在做复习题...1.我国目前股票定价的基本做法是承销商与发行人在公开发行前商定一个固定的价格,然后据此价格进行公开发售,称为( 答案是C )A.议 有水解催化剂可以让硫酸钙水解吗?还有其他物质的高效水解催化剂.不要强碱,不要强酸. 想知道中国服装将来的走向会是怎样?化纤面料又将何去何从? 半乳糖醛酸和果胶是什么关系?还有乳糖和半乳糖的关系, 淀粉水解时用的催化剂是什么 冬天穿化纤布料的服装特别爱“上灰”甚至拍都拍不掉这是为什么
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘