本文转载自:http://blog.csdn.net/yushanddddfenghailin/article/details/17250993

标签(Label)是用来显示文本的主要组件之一,也是窗口应用程序中最常用的组件之一,通过对标签的使用,将能够给用户提供更加详细的信息。

Pascal脚本中的标签由类TlLabel实现,该类定义如下:

TLabel = class(TCustomLabel)

property Alignment: TAlignment; read write;

property AutoSize: Boolean; read write;

property Caption: String; read write;

property Color: TColor; read write;

property FocusControl: TWinControl; read write;

property Font: TFont; read write;

property WordWrap: Boolean; read write;

property OnClick: TNotifyEvent; read write;

property OnDblClick: TNotifyEvent; read write;

end;

和Tbutton的层次结构模型不同,该类的层次模型如下:

下面将在上一节的基础上添加一个标签,并在单击按钮之后标签内容出现相应的变化:

[setup]

AppName=Test

AppVerName=TEST

DefaultDirName="E:\TEST"

AppVersion=1.0

[files]

Source: "F:\desktop\test\ipmsg.exe";Flags:dontcopy

[code]

var

myPage:TwizardPage;

myBtn:TButton;

myLbl:TLabel;

procedure ClickmyBtn(Sender: TObject);

begin

myLbl.Caption:='你点击了按钮~';

myLbl.Color:=clRed;

end;

procedure InitializeWizard();

begin

myPage:=CreateCustomPage(wpWelcome, '标题:自定义页面', '描述:这是我的自定义页面');

myBtn:=TButton.Create(myPage);

myBtn.Parent:=myPage.Surface;

myBtn.Caption:='点我~';

myBtn.OnClick:=@ClickmyBtn;

myLbl:=TLabel.Create(myPage);

myLbl.Parent:=myPage.Surface;

myLbl.Top:=myBtn.Top+50;

myLbl.Caption:='我是标签~';

end;

该代码中主要用到了Label的Caption属性,该属性决定了标签所要显示的文本。属性Color用于设置标签的背景颜色,myLbl.Color:=clRed;将设置标签的背景色为红色,有一个专门的Tcolor类处理关于颜色的属性,更多预定义颜色可查找Delphi相关文档,以下是支持的颜色:

clSystemColor = $FF000000;

clScrollBar = TColor(clSystemColor or COLOR_SCROLLBAR);

clBackground = TColor(clSystemColor or COLOR_BACKGROUND);

clActiveCaption = TColor(clSystemColor or COLOR_ACTIVECAPTION);

clInactiveCaption = TColor(clSystemColor or COLOR_INACTIVECAPTION);

clMenu = TColor(clSystemColor or COLOR_MENU);

clWindow = TColor(clSystemColor or COLOR_WINDOW);

clWindowFrame = TColor(clSystemColor or COLOR_WINDOWFRAME);

clMenuText = TColor(clSystemColor or COLOR_MENUTEXT);

clWindowText = TColor(clSystemColor or COLOR_WINDOWTEXT);

clCaptionText = TColor(clSystemColor or COLOR_CAPTIONTEXT);

clActiveBorder = TColor(clSystemColor or COLOR_ACTIVEBORDER);

clInactiveBorder = TColor(clSystemColor or COLOR_INACTIVEBORDER);

clAppWorkSpace = TColor(clSystemColor or COLOR_APPWORKSPACE);

clHighlight = TColor(clSystemColor or COLOR_HIGHLIGHT);

clHighlightText = TColor(clSystemColor or COLOR_HIGHLIGHTTEXT);

clBtnFace = TColor(clSystemColor or COLOR_BTNFACE);

clBtnShadow = TColor(clSystemColor or COLOR_BTNSHADOW);

clGrayText = TColor(clSystemColor or COLOR_GRAYTEXT);

clBtnText = TColor(clSystemColor or COLOR_BTNTEXT);

clInactiveCaptionText = TColor(clSystemColor or COLOR_INACTIVECAPTIONTEXT);

clBtnHighlight = TColor(clSystemColor or COLOR_BTNHIGHLIGHT);

cl3DDkShadow = TColor(clSystemColor or COLOR_3DDKSHADOW);

cl3DLight = TColor(clSystemColor or COLOR_3DLIGHT);

clInfoText = TColor(clSystemColor or COLOR_INFOTEXT);

clInfoBk = TColor(clSystemColor or COLOR_INFOBK);

clHotLight = TColor(clSystemColor or COLOR_HOTLIGHT);

clGradientActiveCaption = TColor(clSystemColor or COLOR_GRADIENTACTIVECAPTION);

clGradientInactiveCaption = TColor(clSystemColor or COLOR_GRADIENTINACTIVECAPTION);

clMenuHighlight = TColor(clSystemColor or COLOR_MENUHILIGHT);

clMenuBar = TColor(clSystemColor or COLOR_MENUBAR);

clBlack = TColor($000000);

clMaroon = TColor($000080);

clGreen = TColor($008000);

clOlive = TColor($008080);

clNavy = TColor($800000);

clPurple = TColor($800080);

clTeal = TColor($808000);

clGray = TColor($808080);

clSilver = TColor($C0C0C0);

clRed = TColor($0000FF);

clLime = TColor($00FF00);

clYellow = TColor($00FFFF);

clBlue = TColor($FF0000);

clFuchsia = TColor($FF00FF);

clAqua = TColor($FFFF00);

clLtGray = TColor($C0C0C0);

clDkGray = TColor($808080);

clWhite = TColor($FFFFFF);

StandardColorsCount = 16;

clMoneyGreen = TColor($C0DCC0);

clSkyBlue = TColor($F0CAA6);

clCream = TColor($F0FBFF);

clMedGray = TColor($A4A0A0);

ExtendedColorsCount = 4;

clNone = TColor($1FFFFFFF);

clDefault = TColor($20000000);

上述代码运行后效果如下:

点击前

点击后

注意:修改标签文字颜色需要使用标签的Font属性。另外,标签也可以对鼠标的点击做出反应,执行相应的函数,标签支持双击和单击鼠标的事件,但是要注意这两个事件不能并存,测试代码如下:

[code]

var

myPage:TwizardPage;

myBtn:TButton;

myLbl:TLabel;

procedure ClickmyBtn(Sender: TObject);

begin

myLbl.Caption:='你点击了按钮~';

myLbl.Color:=clRed;

end;

procedure ClickMyLbl(Sender: TObject);

begin

MsgBox('你单击了标签', MBInformation, MB_OK);

end;

procedure DbClickMyLbl(Sender: TObject);

begin

MsgBox('你双击了标签', MBInformation, MB_OK);

end;

procedure InitializeWizard();

begin

myPage:=CreateCustomPage(wpWelcome, '标题:自定义页面', '描述:这是我的自定义页面');

myBtn:=TButton.Create(myPage);

myBtn.Parent:=myPage.Surface;

myBtn.Caption:='点我~';

myBtn.OnClick:=@ClickmyBtn;

myLbl:=TLabel.Create(myPage);

myLbl.Parent:=myPage.Surface;

myLbl.Top:=myBtn.Top+50;

myLbl.Caption:='我是标签~';

myLbl.OnDblClick:=@DbClickMyLbl;

//myLbl.OnClick:=@ClickMyLbl;

end;

上面的代码在双击标签时会弹出一个对话框,如果我们把倒数第二行的注释取消,则双击事件并不能被安装程序捕获,因为当用户点击一次鼠标左键后一旦松开鼠标,将会捕获单击事件,而不是再等待双击的到来,这点一定要注意,不过通常标签主要还是用于显示文本,而不是对某些事件做出反应,总之,标签的Caption属性是最重要的。

(转)Inno Setup入门(十七)——Inno Setup类参考(3)的更多相关文章

  1. Inno Setup入门(十六)——Inno Setup类参考(2)

    Inno Setup入门(十六)——Inno Setup类参考(2) http://379910987.blog.163.com/blog/static/33523797201112755641236 ...

  2. Inno Setup入门(一)——最简单的安装脚本

    地址:http://379910987.blog.163.com/blog/static/3352379720110238252326/ 一个最简单的安装脚本: 1.最简单的安装文件脚本: [setu ...

  3. Inno Setup入门(十一)——完成安装后执行某些程序

    Inno Setup入门(十一)——完成安装后执行某些程序 2011-02-16 16:24:23|  分类: Inno Setup |  标签:inno  setup   |举报 |字号 订阅   ...

  4. JS面向对象(1) -- 简介,入门,系统常用类,自定义类,constructor,typeof,instanceof,对象在内存中的表现形式

    相关链接: JS面向对象(1) -- 简介,入门,系统常用类,自定义类,constructor,typeof,instanceof,对象在内存中的表现形式 JS面向对象(2) -- this的使用,对 ...

  5. Python编程从入门到实践笔记——类

    Python编程从入门到实践笔记——类 #coding=gbk #Python编程从入门到实践笔记——类 #9.1创建和使用类 #1.创建Dog类 class Dog():#类名首字母大写 " ...

  6. python入门学习:8.类

    python入门学习:8.类 关键点:类 8.1 创建和使用类8.2 使用类和实例8.3 继承8.4 导入类 8.1 创建和使用类   面向对象编程是最有效的软件编写方法之一.在面向对象编程中,你编写 ...

  7. “全栈2019”Java第八十七章:类中嵌套接口的应用场景(拔高题)

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  8. “全栈2019”Java第三十七章:类与字段

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  9. Kotlin学习快速入门(3)——类 继承 接口

    类 参考链接 类定义格式 使用class关键字定义,格式如下: class T{ //属性 //构造函数 //函数 //内部类 } Java Bean类 java bean类 //java bean类 ...

  10. [转] - QBuffer类参考

    QBuffer类参考 QBuffer类是一个操作QByteArray的输入/输出设备. 详情请见…… #include <qbuffer.h> 继承了QIODevice. 所有成员函数的列 ...

随机推荐

  1. 【zznu-夏季队内积分赛3-J】追忆

    题目描述 “别人总说我瓜,其实我一点也不瓜,大多数时候我都机智的一批“现在是阳历2018/8/7,宝儿姐想起自己参加ACM整整1000天了.她想知道她刚入坑是什么时间.那么问题来了,请帮宝儿姐追忆一下 ...

  2. hdu3488

    题解: 首先把每一个点拆到两边 然后做KM求最大 吧没一条边相反即可 代码: #include<cstdio> #include<cmath> #include<algo ...

  3. hdu4115

    题解: 2-sat 对于bob出的每一张牌,alice显然只有两种选择 然后对于每一个限制,连边 判断是否可行 代码: #include<cstdio> #include<cmath ...

  4. hystrix -hystrix常用配置介绍

    配置官网介绍地址:https://github.com/Netflix/Hystrix/wiki/Configuration hystrix.command.default.execution.iso ...

  5. LeetCode OJ:Burst Balloons(击破气球)

    Given n balloons, indexed from 0 to n-1. Each balloon is painted with a number on it represented by ...

  6. [Python] 比较两个数组的元素的异同

    通过set()获取两个数组的交/并/差集: print set(a) & set(b) # 交集, 等价于set(a).intersection(set(b)) print set(a) | ...

  7. android 自定义title 报错 You cannot combine custom titles with other title feat

    solution: http://www.apkbus.com/android-80416-1-1.html http://www.eoeandroid.com/forum.php?mod=viewt ...

  8. Java从入门到精通全套教程免费分享

    这是我自己早前听课时整理的Java全套知识,适用于初学者,也可以适用于中级进阶的人,你们可以下载,我认为是比较系统全面的,可以抵得上市场上90%的学习资料.讨厌那些随便乱写的资料还有拿出来卖钱的人!在 ...

  9. Mininet python代码创建拓扑、交互式界面创建主机、交换机

          python代码创建拓扑: from mininet.net importMininet net =Mininet() # Creating nodes in the network. c ...

  10. nodejs返回接口给前端

    1.修改app.js文件,将其中的user路由去掉. 2.在index路由中配置如下:   router.all('*', function(req, res, next) { res.header( ...