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

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;

展望HBase的未来 你的数据库安全吗?CryptDB数据库软件可查询加密的SQL数据库 收藏!斯坦福Andrew Ng教授“机器学习”26篇教程全译 美国云计算价格战爆发 王寒:12岁儿童,该怎样开始iOS开发? 陈昊芝:腾讯!让我说你什么好? Top Paid与Top Grossing定价策略的差异 Android版百度云推送正式发布 为何开发者应推动公司开源? 从AppGratis被下架说起,苹果或将再次付出代价 58同城的“烦恼”——8K月薪安全工程师引发的入侵 软件开发实践的24条军规 思科 IBM 微软等巨头联合开发开源SDN项目OpenDaylight 巾帼不让须眉:2012年度云计算领域Top 10女性 中移动全力推进NFC 5月起乘公交可刷手机 支持Android与iOS,Qt 5.1 Alpha全新亮相 Google Play:劣质Android应用已无藏身之地! 360推出信用网站认证开放平台 联合百家协会围剿钓鱼网站 经验分享:百度测试架构师眼中的百度QA(一) 在线旅行服务行业开放API带来的新机遇 专访:悬疑恐怖游戏Year Walk美术及音效设计师 解密:微软都柏林数据中心的神秘“免费冷却”装置 云计算如何影响数字化营销? 榜单:十位帮我们打理数据的存储大佬 OpenStack Grizzly版发布 Comcast、CERN成为新会员 谷歌携Blink来势汹汹 WebKit将成明日黄花? 星巴克与苹果合作 顾客可免费下载付费App 微信回应信令争议 将启动2.5G网络优化计划 凤凰网CTO吴华鹏离职 先后供职长达10年 外媒:开发者每周编码时间仅19.1小时 AppGratis CEO现身说法:应用被苹果儆杀始末 怪问题 <了解Struts1.1 > 我刚看到的一篇好文章,贴出来,大家共享 dayday up (: 如何驱动8139网卡(笔记本) interbase能与VC结合吗?另外想问有些软件与interbase一起打包安装,如何实现的呢? Lotus——你在哪里? 网络编程中遇到的几个问题(求助) 在java中调用javac.exe 紧急在线等待,求助!!!!! 我是新来的,很多都不懂!也没有朋友,有谁能和我做朋友么? 分手为什么只要一个人说了就算,为什么不能像离婚一样要双方同意,法院判决??? 关于从TImage继承创建自定义控件的问题? JRUN4怎么运行Servlet? 关于远程创建表,删除表的问题?请帮忙。 启动数据库时报 监听程序无法启动专用服务器进程???ORACLE 9.2.0.1.0 如何將指針作為參數傳遞。 请教vb自带的报表编程 在Sql语言中的取整函数是什么? 怎样将添加的记录到所有的现有记录后面? 如何装双系统?(在线等候) CSS一般要学多久才算掌握? 从事共享软件开发的进来谈谈做共享的辛酸好吗? 请教使用notifyicon遇到的问题 ActiveState.Visual.XSLT.for.VS.2003.v1.7.9.2475.WinNT2K无法安装。 如何合并两个dataset win98系统下ISAM问题 如何减小生成的EXE文件大小等? asp.net有没有模板 帮帮忙,呵呵!!!一个小问题!!!!! 用VB的兄弟姐妹们,来整个MSN如何? 关于dllhost占用系统资源的问题! 谁是雍亲王,出来说话!!! 在WSAD5.0里怎么添加类型为MYSQL的数据源 高手们,帮帮我噢(解决立刻给分) 全中国程序员联和起来。 如何在web的FORM1模式下画一条线段 界面贴图问题 为什么我用Server.MapPath(""),返回不了任何东东? 上手指路,高分相送 asp怎样连到SQL Server 2000?给100分,在线等 ASP.NET和SQL 哪位兄弟有用asp.net做的OA完整的例子...大家快来.. 关于dllhost占用系统资源的问题! Kylix是否和Delphi一样有RTF控件可以处理丰富文本? 小弟想考程序员!各位大哥指点一下嘛!有要考的交流一下嘛! 查询条件的问题?? 从事共享软件开发的进来谈谈做共享的辛酸好吗? TListView中某一SubItem怎末实时更新?在线等。。 http://www.000163.com/的空间能不能信得过? 请帮忙哟,在线急等 asp.net下如何用c#编写程序实现调用数据库中的多个表显示在datagrid 如何调用存储过程来删除表中的列名???? “专一”的定义并非是他只能一生爱一人,而是每爱一个人的时候他都一心一意!“专一”的定义并非是她只能一生爱一人,而是每爱一个人的时候她都一心一意! 《小石潭记》中“记”的意思 孔子家语孔子曰:"吾死之后•••••者焉." 写作目的(原文) 孔的节圆是什么意思 解答关于《孔子家语》的问题和好人相处,就会受到好的影响,和坏人相处,就会受到坏的影响.真的是这样吗? 国家安全的含义 谁可以帮我做做物理题啊?1、 质量为0.10kg的物体,以振幅1.0*10-2m做简谐运动,其最大加速度为4.0m/s-2,求:(1) 振动的周期;(2) 通过平衡位置的动能;(3) 总能量;(4) 物体在何处其动能 《李贺作诗》&《孔子家语·六本》的 鲍鱼之肆...回答阅读.. 李贺七岁能辞章,韩愈、皇甫铈①始闻未信,过其家,使贺赋诗,援笔辄就如素构,自目曰《高轩过》②.二人大惊,自是有名. 国家安全不的标志是什么含义啊?国旗在右下角 党旗左上角 警徽橄榄枝的标志在右上角 左下角是黑色白色. 代表的含义 是什么啊? 《我思故我在》的意思~ 修辞手法与表现手法的区别? 国家安全的概念国家安全是个不断发展的概念,在不同的时代,不同的发展阶段具有不同的内涵.国家都有自己的安全利益,因而都有建设和运用综合国力以维持国家安全利益的总体构想,这就是 谁帮我做做物理题1.在直线运动中的物体,若速度为零,则加速度一定为零………【 】2.在直线运动中的物体,若速度变化快,则加速度就大………【 】3.同一物体受到的合外力越大,它的速度 求过两点(-1,1)和(3,9)的直线在X轴上的截距. 公民维护国家安全的意义及要求 都说我思故我在,到底是什么意思呢? 《小石潭记》中心乐之的乐怎么解释? 羁绊是什么意思? 帮我做做这几道物理题谢谢 《陋室铭》《孔子家语》对比阅读答案 无经验限制是什么意思 一道物理题,做做看~25.(5分)干电池是实验时经常使用的电源,它具有稳定的电压.实际上干电池本身也具有一定的电阻,只是因为较小,我们忽略了电源本身电阻的影响.如果考虑电阻,可以把干 修辞手法和表现手法有什么不同 一块长方体木块,长5厘米,宽4厘米.高3厘米.把它削成一个最大的正方体后,体积比原来减少百分之几?谢谢你!但是答案是百分之45 质量为M的木块放在固定的水平面上,一颗质量为m的子弹以速度V0水平穿透木块后,速度减为V0/2,现使该木块不固定,放在光滑水平面上,同样的子弹还以V0速度射中木块,若要射穿木块,问木块的质 这个字这样写有什么寓意 瑞士,瑞典的官方语言是什么? 柏拉图是谁啊?谢谢啦! 将地图转换成简单的路线图 [疴] 怎么办呢? “昊”这个字有什么寓意? 如何提高直通车关键词的质量得分? 果实累累LEI(二声)还是累累LEI(三声) 辰这个字有什么寓意 疴养什么意思 我思故我在是什么意思 怎么在数学建模中简化地图 爱成疴什么意思 果实累累的笫一个累读什么音 在补充里面看不懂就在y轴截距小于1,为什么a^(-b)<1?麻烦解释下.图像是f(x)=a^(x-b) 疴尿什么意思 柳宗元的《小石潭记》中“以其境过清”“以”什么意思? 恬是什么意思 “广乃告其所以,客豁然意解,沈疴顿愈”是什么意思(不要什么谜语的,就要翻译!) 先天下之忧而忧后天下之乐而乐!出自那篇文章? 刚刚入手的星月菩提,半个月了,这是盘花了嘛?怎么颜色有些不一样?我接下来该怎么办啊? 辛亥革命是成功的还是失败的?为什么?它的成功与失败都体现在哪里?请举出具体的例子. 吹牛大王杀死狮子和鳄鱼,不过太残忍,有没有更好的方法既不伤害动物,又使自己脱险,5分钟内答完再加财富 恬思是什么意思 恬思是什么意思 喝酒呢,客随主便的反义词 请问K1O1 O·1 是多大的电容器?耐压多少? 恬恬自在是什么意思 我来到城市和我的外祖母(妈妈的妈妈)生活在一起、 句式不要太简单、 拒绝百度在线翻译或者谷歌在线翻译之类的谢谢 柏拉图是谁 啊? 收音机里用的调谐电容耐压有多大啊有没有哪个型号的可调电容,最大电容值能达300pf,而且耐压能达10kv啊 恬什么意思 我一直不相信一生只将爱付诸一人.但一生付诸一切爱过的.也只有一人 我感觉泰国总理英拉也不行吗?中国为什么要力挺英拉呢? 恬恬什么意思 喵星人出没!走进日本“猫岛”田代岛(埃及前总统穆尔西到达受审地点 将接受菲律宾半数家庭自认贫穷 三成家庭难填美国“粮票”遭削减 部分人将失去领取斯诺登抨击美国国家安全局为“最坏犯罪“头文字T”东风日产“天籁弯”第二季埃及前总统穆尔西即将受审 罪名成立或外媒借三中全会关注中国改革 称将决定日本“抗华公关”紧忙活韩日抱怨“遭中国雾霾入侵”罗姆尼:奥巴马医保网站问题频出 有损浙江萧山冤错命案一审审判长辞去法院院朝鲜平壤国家杂技团“空中飞人”摘吴桥英媒称欧洲五国情报机构合作搞监听洛杉矶机场枪击案致航班受阻 华人伸援印尼黑客袭击澳大利亚200多家网站 玻利维亚北部发生坠机事故 已致8人死日本防卫省对大规模军演限制报道让日媒德国海关在一公寓中查获逾1500幅绘刚果(金)反政府武装陷入绝境 要求立伊拉克总理访美寻求武器技术支持 防内武汉“蝶痴”尊老爱“左”还没长大就老了18凑近看,你有忍不住想触摸的冲动戏梦人生季后赛MVP榜:沃尔暂列第一 罗斯第武汉会战时的重机枪手原是女儿身武汉住房供应可满足6到10年需求武汉“蝶痴”是个面包车司机坚不可摧3赵芸蕾“被”伤退形入紫闼,而意在青云谈情说爱看明星如何拯救校服快问快答“我是你的眼”读书助残志愿活动启动放过窦唯吧 让他安静地做个艺术家活着,替儿子多看看世界本报“百家名企万名青年春季姻缘会”明李述永当选为市总工会主席向市民征集环境污染问题线索
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘