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

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;

隐藏Win95任务栏 -VB资料 VB用API函数打开 MS CommonDialog对话框 VB用MSGBOX函数设计版权信息: 用VB5 制作“闪烁标题栏”窗体 用VB5.0获取正在系统中运行的窗口标题 用VB实现浮动按钮 用VB5实现窗口图象缩放、滚动技巧 用VB6建立带光栅的超级开始菜单 用VB尝试新的界面风格 用VB建立字符界面的控制台程序 用VB快速读取TextBox第N行的数据 用VB 设计VCD播放器 用VB设计更好的用户界面 用VB设计聚焦框程序 用VB实现“ICQ”式的启动欢迎画面 用VB实现全屏幕图形界面及动态功能提示 用VB实现任务栏右下角的小图标 用VB制作常居上层的浮动工具箱 用VB制作即时动态按钮 用VB作浮动式图标提示按钮 用Visual Basic编写托盘程序 用Visual Basic窗体背景花纹的实现 用Visual Basic设计窗体背景花纹 用Visual Basic设计更好的用户界面 用Visual Basic设计三维图形按钮 用VisualBasic制作半透明窗体 运行时改变控件大小的两种方法-VB资料 运行中隐藏/显示窗口标题栏-VB资料 在ListBox适当设定水平滚动条的宽度-VB资料 在VB中利用API实现窗体的平滑显示 在vb中让控件大小和位置随着表单的大小成比例变化的方法 怎样在一台机器的listener.ora中配置多个listener???? 关于拦截文件操作的API的钩子程序求教:qq:55020921 请教各位高手:有关page.server.execute()的问题? why???为什么?? 怎样删除记录!并记录都为NULL的! 怎么得到自身的文件名?急 急啊!请教大虾:如何用Img控件显示数据库里的二进制图像文件?? 请问,UBB代码的问题. 女朋友中标怎么办? 电影收费网站帐号共享,喜欢看电影的朋友进来。。。 大家做的基于GIS的软件,都实现一些什么功能啊?来者有分 我想用delphi在前端输入7位小数点,怎幺做? 求助 喜欢CS的朋友请进来 各位高手:IIS 不解析asp页面是什么原因? 我想用delphi在前端输入7位小数点,怎幺做? sql7数据库使用中的奇怪错误!!! 谁能告诉我这是怎么回事啊?急!在线等,分不够在加,马上解决马上结恬! 怎样把日期转化为星期 一个关于建立文件管理窗口的问题 我想在3dmax中的立方体顶面贴图,其他面不动,如何实现? 如何在DataGrid中加入CheckBox,并确定是否被选中?急!!! 关于用户自定义page类的问题 存储过程中IF EXISTS(select @result=aaa from tbl)提示等号附近有语法错误!!! 请问除了设置Anchor属性外如何保证窗体放大后组件的位置和大小? 如何在BCB中动态创建对象? SOS 救火 帮忙看个错,数据库连接问题 看看这个xml怎么用xsl解析 在DELPHI中,怎么遍历相同的控件? 一个简单的问题---在线等 在线等待:如何捕捉listctrl垂直滚动条的点击事件? 控件分类管理 急求一个递归统计函数,能解决者马上给分!!! 如何在ie中只打印iframe里面的页面内容 求select语句 请jennifergiant来领分,谢谢 如何将在内存中创建的BMP文件加载到页面上??? 帮忙看个错,ORA-00600 那里可以下载测试工具(Loadrunner,testdirector) 如何写一个往数据库里插入记录的公共模块啊? 文本两边对齐 请问sqlserver2000中bit类型值怎样表示 谁有jspsmart 上传组件。我上不了jspsmart.com ,好心人给我发一个!!! 时间格式有误,不知是何原因? 怎样开、关进程!(不是线程)? 今年高考的一篇旷世奇文 cnn连接怎么单独写出来,让Sub或Function调用?不用每次都写一次连接, 请附上Code ,谢谢 请教multibytetowidechar的用法 请救各位. 关于用nmudp实现传输!up也有分,:)) 填空:天行健,__________;地势坤,_____________.天行健,__________;地势坤,_____________.突然忘了,不好意思了.据说清华很推崇这句话阿 |a-2014|与|b+2013|互为相反数,则a+b=? 一次函数y=kx+b与直线y=2x平行且与x轴,y轴分别交于A,B两点,若S三角形AOB(O为坐标原点)求一次函数解析式 天行键,君子以自强不息.地势坤,君子以厚德载物. 英语六级考的词汇都是很深奥的吗?会不会出现四级的词汇,我知道六级要掌握的词汇量是5500,包括了四级的3000,所以真正的六级词汇量是2400左右,是不是要全部看完5500词汇,还是只需看六级的240 天行健和地势坤的含义 怎么拓展、创新 天行健( )地势坤,君子以厚德载物. 天行健,君子以自强不息,地势坤…后面是什么? 求开头是“ve”开头的英文单词,结尾好像是“per”好像是 vemmper 我也忘了 就是ve开头的。必有重谢!内个单词 或者是个英文名,很长的 得有7 8个字母加起来的、 英语中per特指什么样的词? 4张桌子,15张椅子,共花750.2张桌子的价钱等于5张椅子.每个桌椅多少钱?每张椅子多少钱? 斯诺登将在俄“遥助”德国 作证“监听2013年是“男”还是“女”?哈里王子遭英国报刊窃听房租过高 白领伦敦上班巴塞罗那居住坐温州16家企业3500万元建起污水处浙江290多家企事业单位赴沪求贤70杭州建兰中学千岛湖建新校 2014年美一涂鸦街区将拆迁 艺术家联名告开发媒体揭秘美国监听手段:大使馆屋顶材料美无人机操作员:像僵尸一样执行任务 “罗莎”向偏西方向移动 东部地区雾霾是谁泄露了举报者的个人信息是比赛,更是一场科学“试炼”图片新闻图片新闻图片新闻手拉手红领巾书屋正成为孩子童年标配创新之花绽放中关村“烧脑”的科幻片需要“走心”的科学家“援疆是个互学的过程”“我拿到了最中意的大奖”米克尔首练不摆球星架子(图)
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘