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

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;

新iPhone要来:4.7就够了么?我们还有更大的 Docker迈入云(DockerHub)+端(Docker引擎)时代 《近匠》壹枱智能钢琴:改造音乐行业的新“玩”家 圣何塞Hadoop Summit 2014看点 唯快不破!90后大学生9天完成近670页的Swift语言文档翻译 一周消息树:Java、.NET、Web技术应用特点 苹果生态格局:软硬件之后,iLifestyle才是王道 小米互娱总经理尚进:独立游戏当为发烧而生 哪些编程语言、框架/平台最受企业青睐? 高德LBS应用大赛:百万大奖、千万基金等你来拿! Gartner:有数据有真相 从浪潮看服务器市场走势 PhoneGap 3.5.0发布,不再支持iOS 5和ARM64 “中美青年创客大赛”之“创客·教育论坛” 以创客教育支持创新人才培养 授之以渔,谷歌发布开源秘密武器Kubernetes 炫耀分数已经out!ShareSDK发布游戏内视频录制SDK Android开发者必知的5个开源库 UCloud完成B轮融资5000万美元 Git远程操作详解 《近匠》iMAG:移动应用快速跨平台开发工具 Facebook斥资30亿美元购Snapchat遭拒后,推Slingshot 全球开发者报告:程序媛崛起,企业应用更赚钱! 土豪经济 E人E本发布首款4G安全手机 内忧外患:Android版FuelBand应用来得太迟? MongoDB 2.6.2 发布,大大改进查询功能 清华毕军&amp;华为马云:SDN是学术和产业都看好的领域 向三星和苹果发难:亚马逊FirePhone 3D手机强势来袭 支付宝移动端与NFC芯片商、手机商合作 推出近场支付产品 Go 1.3正式发布,改进正则表达式! API设计如龙生九子,Tunneling、Hypermedia等更受开发者青睐 NFV+SDN,博科打造开放式网络平台 亚马逊开放双SDK:摄像购物,追踪脸部玩游戏 谁知道哪里可以弄到这本书"Windows Graphics Programming: Win32 GDI and DirectDraw" 程序员杂志第7期的程序擂台目前为止只有一个人做对了 分数不高,还请各位DX们指点以下:如何用DELPHI控制excel的格式(比如第一列的宽度,第五行的高度),以及如何在WORD中生成表格,其中填入数据库的数据. 各位情感高手请解答(没有谈过恋爱的免谈) 一个list控件,style设为checkbox,要怎样才能使列表中各项的默认值是选中状态,也就是说各项一开始都是打了勾的 阿虎菜问7:请问C与C++中的内封函数应该差不多吧? s_cube(竹子), s_cube(竹子)~!! 我爱你,s_cube(竹子) s_cube(竹子) ~!在哪里 简单问题(1) 如何不运行编译? 有谁知道怎么从perl里调用一个c库里的函数????????? 请问在CB中如何隐藏WINDOWS的任务栏呢? 今天不爽,下班后打星际,大家一起来。 指点!在PB中怎样用程序作成一张动态的交叉表 编辑控件怎样才能显示那些怪字符? 有没有人喜欢郑智化 大家推荐好听的几首歌吧! 请教:怎么学c++? 高手点拨! 各位网络高手.如何在程序里讲ip地址转化为域名 有什么方法,可使表单内的组件背景变成透明的而文字不透明,请看例子: 编辑控件怎样才能显示那些怪字符???? swall(壹心) 你还在深圳特区吗? 如何设置Session的密码?请高手指点迷经^^^^^ 哪位可以解释一下下面的代码? perl 的人气太差。罢了罢了。找本perl自己搞定 MsSQL7.0 当日志文件大小未限制而变得很大时,怎样清日志文件,使其减小? 请教诸位牛兄牛姐牛夫人---有难度哦(着急出活!) 基本问题:如何将一个.txt中的内容读入到内存再从内存中读出并存为另一个文件?谢了先!!!! 高手帮帮忙!!!!!!!!!!!!!! 又有台风了。。。。 在zip包中加入ASP推荐的PAD File有用吗????? PB连接SQL数数库,为什么显示的表会不全 如何把一个文件file.dat里的数据写入软盘0磁道0磁头1扇区. 我要骂人! chris2001(牛虻),不是东西 华为工程师 谁知道 vb 的序列号?????? VS.NET 有开了个新铺子。为什么我的ejb/j2ee还没有开张。气愤。 老大们:我是菜鸟,有问题要问,不过不要笑我。一定给分的 再次发问:关于在SQL SERVER中的某张表上建立触发器...... 没有有这样的病毒,或者文件 各位老大,如果有asp、sql基础学jsp和php是不是比较容易一些呀?言者有分哦! dll中怎样调用主程序中的函数? 新手请教接口聚合!!!!!!!!! 高分求教!有没有谁编写过WEB服务器程序? 微软OfficeXp女孩 请教一个报表问题? 小技巧!!! delphi中调用MessageBox出错,高手指点一下。 大家好,这是我提的第一个问题!我学DELPHI才两周!对您的指点,小弟万分感激! 请问sybase12。0中,游标能不能用动态sql申请 紧急求助:如何调用父对话框的函数 焓是什么意思? 九年级物理知识点总结 对知识点有解释的 下列说法正确的是A物体在它的运动状态发生改变时,惯性表现最明显 为什么等压下绝热反应中标准摩尔焓变等于零 九年级物理的知识点有哪些 物体的运动状态改变,的改变或?的改变或它们同时改变.要改变物体的运动状态,必须对物体 某化学反应在恒压,绝热和只做体积功的条件下,体系温度由T1升为T2,此过程的焓变为()A △H (2013•苏州一模)随着夏季的来临,小明想为家庭设计一个54L简易太阳能晒水箱.他随着夏季的来临,小明想为家庭设计一个淋浴用的能装54L的简易太阳能晒水箱,他从资料中得知,地球上与 质量500g的金属,温度从20℃上升至10℃,吸收热量3.5*10^4J,求这种金属的比热容,并判断是哪种金属. 温度会改变为什么焓变还是等于零焓变不是状态函数 只跟温度有关吗?为什么温度变了 焓变还为零 太阳能热水器哪个牌子好?谁来说下?太阳能介绍啊dhi8com谁有更好的? 甲乙两种物质,质量之比是4:1,放出热量之比是3:1,则它们的比热容之比和降低温度之比分别是下列四种情况可能满足题设的条件是:( )①1:1,3:4 ②2:1,1:3 ③1:2,3:2 ④1:3,9:4A.①② B.①③④ C.②③ D. 气体等焓节流后会温度会变化,我想知道这个现象的微观解释是什么,详细点……理解能力有限有的气体节流后会降温,而有的气体会升温这是为什么?还有咱用的冰箱也利用了节流,给具体解释 谁知道2013年的气候预测上班年是冷还是热? 甲、乙两种物质的比热容之比是2∶1,质量之比是3∶1,若它们吸收的热量相等,则甲、乙升高的温度之比为________;若它们升高相等的温度,则它们吸收的热量之比是__________________.若甲、乙两种 绝热节流前后,气体的焓不变,为什么温度还会变? 从现在到2013年的一月初三一共有多少天?看见的朋友要注明 从2008年的几月几号算起的 甲乙两物体,质量比为1:2,升高的温度比为2:1,吸收相同的热量,则甲乙的比热容之比为 什么叫节流?节流是个等焓过程,为什么? (2013连云港)27.下列关于氧气的说法中错误的是 A.氧气约占空气总体积的1/5 B.氧气可以支持燃烧,说明氧气具有可燃性 C.氧气供给呼吸,它和体内物质反应,释放能量,维持生命活动的需要 D _的某种物质 温度升高或降低_ 所吸收或放出的热量数值等于他的比热容 绝热可逆膨胀温度为什么变小 苏州地区哪里有的卖硫酸如题 谢谢了RT. 已知甲乙两物质,当他们的质量相同,甲的温度升高的比乙多,对于他们吸收热量与比热容之间的关系 请问绝热可逆过程和绝热不可逆过程的焓变有什么区别? 相同条件下,相同浓度的硫酸和盐酸相比,硫酸溶液的PH值小 这个说法对的还是错的 有甲乙2个物体,甲的比热容是乙的2倍,质量是乙的二分之五,若吸收热量相同,升高的温度比为几比几 湿空气在喷蒸汽加湿的过程中,含湿量,相对湿度,焓的变化 2013年苏州园林卡办理时间和地点 有甲、乙两个物体,质量之比为5:3,比热容之比为2:1,如果他们放出相同的热量,降低温度之比为? 为什么循环水喷淋空气处理过程是等焓加湿过程 推荐几个夏天天气不太热的城市 明年就读大学了. 想去一个天气好点儿的城市. 1 . 夏天最热月平均气温32度以下. 2 . 冬天最冷月平均气温0度以上. 最好是临海、经济发达 气体体积与压力大小的变化 为什么电热式加湿器会是等温加湿?而水洗加湿等是等焓加湿?等焓加湿说通俗点是什么意思?各位大侠们是怎么理解这个焓值的? 夏天中国哪个城市气温最低最好可以给出那些城市夏季的大约温度 压缩客气灌体积大小与它所冲装气体的压力有关吗 物体温度越高,所含热量越多. 这句话为什么是错的?这句话指的应该是同一个物体吧,也就是说100g99度的水和100g100度的水比,为什么不是100度的水所含热量多? 中国哪个城市气候最好冬天不冷夏天不热 80公斤气体压力有多大?80公斤气体压力是等于8mpa吗?这个压力有大?如果用这个压力推动50克重物能推多远? 温度越高物体含有的热量越多吗? 下列说法正确的是()A高温物体的内能一定大B物体的内能变小,温度一定降低C内能大的物体,温度一定高D物体的内能越大,温度可能不变 要理由 氧气和氢气,哪个容易液化请说明理由 物体的温度越高,它所含的热量就越多.这句话是对的还是错的 人们永远无法改变天气,这种说法对吗?为什么? 氢气氧气液化条件氢气需要多少pa的压强才能液化.氧气呢. 物体的温度越高 它所含热量就越多吗?理由 物体吸收了热量 温度一定会升高吗?理由 因为天气是变化无常的,所以人们永远无法改变天气,这种说法对吗?为什么? 为什么氨气易液化 ,而氮气和氢气通常情况下不易液化? 焓差的定义是什么 物体的温度越高,它含有的热量就越多. 天气变化是大气层变化的结果,所以人们永远无法改变天气.这种说法对吗?为什么? 焓值差由什么决定? 物理温度与内能的知识点填空 下列事实中 ,属于物体运动状态改变的有:A 用力拉弹簧 ,弹簧变长B跳伞运动员在空中匀速直线下降C正在进站的火车D运动员透出的标枪在空中运动带解析 、 等焓状态什么意思? 九年级物理知识点 关于物体运动状态的改变,下列说法中正确的是 ( )A.物体运动的速率不变,其运动状态就不变B.物体运动的加速度不变,其运动状态就不变C.物体运动状态的改变包括两种情况:一是由静止到 任何一种物质都有焓吗?比如说,我用热空气干燥一种物质,热空气降温,这种物质升温,水份蒸发,利用焓来计算热量平衡,应该怎样算呢? 求初中物理内能详细知识点 关于运动和力,下面说法正确的是:A、物体运动,必须有力的作用.B、物体的运动状态要发生改变,必须有力的作用.C、没有力的作用,运动物体速度不可能快起来,但可以慢下来.D、物体受到力的
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn