Inno Setup入门(十九)——Inno Setup类参考(5)
: Install Setup 2013-02-02 11:29 377人阅读 评论(0) 收藏 举报
单选按钮
单选按钮在安装中也很常见,例如同一个程序可以选择安装不同的性质的功能,例如选择32位或者64位等,两者是排他性的,因此可以通过单选按钮(RadioButton)来实现,在同一个容器中放置的单选按钮是自动带有排他性的,Pascal脚本中单选按钮的定义如下:
TRadioButton = class(TButtonControl)
property Alignment: TAlignment; read write;
property Caption: String; read write;
property Checked: Boolean; read write;
property Color: TColor; read write;
property Font: TFont; read write;
property OnClick: TNotifyEvent; read write;
property OnDblClick: TNotifyEvent; read write;
end;
其继承关系如下图:
可见和按钮的层次模型是一样的,事实上,RadioButton和Button并没有太大的区别。唯一的区别是单选按钮的排他性。
下面的代码将在自定义向导页上添加一个文本框和两个单选按钮:
[setup]
AppName=Test
AppVerName=TEST
DefaultDirName="E:\TEST"
AppVersion=1.0
[files]
Source: "F:\desktop\Inno\ipmsg.exe";Flags:dontcopy
[code]
var
myPage:TwizardPage;
radio1,radio2:TRadioButton;
lbl:TLabel;
font:TFont;
{radio1的事件响应过程}
procedure ClickRadio1(Sender: TObject);
begin
lbl.Font.Color:=clRed;
end;
{radio2的事件响应过程}
procedure ClickRadio2(Sender: TObject);
begin
lbl.Font.Color:=clBlue;
end;
procedure InitializeWizard();
begin
myPage:=CreateCustomPage(wpWelcome, '标题:自定义页面', '描述:这是我的自定义页面');
lbl:=TLabel.Create(myPage);
lbl.Parent:=myPage.Surface;
lbl.Caption:='改变单选按钮的选项,我就会变色';
radio1:=TRadioButton.Create(myPage);
radio1.Parent:=myPage.Surface;
radio1.Caption:='红色';
radio1.Top:=lbl.Top+20;
font:=TFont.Create();
font.Color:=clRed;
radio1.Font:=font;
radio1.OnClick:=@ClickRadio1;
radio2:=TRadioButton.Create(myPage);
radio2.Parent:=myPage.Surface;
radio2.Caption:='蓝色';
radio2.Top:=radio1.Top+20;
font.Color:=clBlue;
radio2.Font:=font;
radio2.OnClick:=@ClickRadio2;
end;
该段代码中重点是单选按钮的OnClick事件,该属性所指向的过程决定了单选按钮被点击后的行为,安装文件运行到自定义页面后效果如下:
或许有人会问,如何在有多组不同的选项中做出选择呢?例如一边选择颜色,一边选择字体大小?对于这个问题,传统上Delphi是通过添加控件类TGroupBox来实现的,但是这个类在Pascal脚本是不支持的,所以Delphi中的方法行不通。虽然传统方法不行,并不代表Inno就无能为力了,最简单的方法就是创建两个页面,一个页面处理一种选项,另一个页面处理另一种选项(因此这里用前面的例子并不太好,主要是用来阐述单选按钮的使用),等用户都选完了之后,再统一执行。另外一种方法是使用其他控件,例如列表框(ListBox)。
Inno Setup入门(十九)——Inno Setup类参考(5)的更多相关文章
- “全栈2019”Java第七十九章:类中可以嵌套接口吗?
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- Inno Setup入门(九)——修改安装过程中的文字显示
前面说到过可以使用不用的语言文件实现不同的显示方式,方便与国际接轨,事实上即使没有语言文件也可以实现修改.[Messages]段用于定义安装程序和卸载程序中显示的消息.一般不需要创建 [Message ...
- Inno Setup入门(九)——修改安装过程中的文字显示
前面说到过可以使用不用的语言文件实现不同的显示方式,方便与国际接轨,事实上即使没有语言文件也可以实现修改.[Messages] 段用于定义安装程序和卸载程序中显示的消息.一般不需要创建 [Messag ...
- (转)Inno Setup入门(九)——修改安装过程中的文字显示
本文转载自:http://blog.csdn.net/yushanddddfenghailin/article/details/17250837 前面说到过可以使用不用的语言文件实现不同的显示方式,方 ...
- Unity 游戏框架搭建 2019 (二十九) 方法所在类命名问题诞生的原因
我们在整理阶段解决了一些意外的问题.但是这些问题仅仅只是被解决而已,我们并没有去思考过这些问题是为什么产生的?以及在以后我们如何去避免这些问题的产生? 方法所在类的命名问题,最后我们通过方法分类解决了 ...
- Android入门(十九)WebView
原文链接:http://www.orlion.ga/676/ WebView可以在自己的应用程序中嵌入一个浏览器来展示网页. 创建一个项目WebViewDemo,修改activity_main.xml ...
- day29 二十九、元类、单例
一.eval.exec内置函数 1.eval函数 eval内置函数的使用场景: ①执行字符串会得到相应的执行结果 ②一般用于类型转换得到dict.list.tuple等 2.exec函数 exec应用 ...
- java 基本语法(十九)Optional类的使用
java.util.Optional类1.理解:为了解决java中的空指针问题而生!Optional<T> 类(java.util.Optional) 是一个容器类,它可以保存类型T的值, ...
- Kinect for Windows SDK开发入门(十九):Kinect Fusion
Kinect for Windows SDK1.7中引入了Kinect Fusion功能.在1.8的SDK中对该功能进行了改进和强化,Kinect Fusion能够使得我们使用Kinect f ...
- [WebGL入门]十九,遮挡剔除和深度測试
注:文章译自http://wgld.org/,原作者杉本雅広(doxas),文章中假设有我的额外说明,我会加上[lufy:],另外.鄙人webgl研究还不够深入,一些专业词语,假设翻译有误.欢迎大家指 ...
随机推荐
- 让IE6 IE7 IE8 IE9 IE10 IE11支持Bootstrap的解决方法--(转)
如有雷同,不胜荣幸,若转载,请注明 让IE6 IE7 IE8 IE9 IE10 IE11支持Bootstrap的解决方法 最近做一个Web网站,之前一直觉得bootstrap非常好,这次使用了boot ...
- js实例--js滚动条缓慢滚动到顶部
收集篇(已测)-- <html><head> <script type="text/javascript"> var currentPositi ...
- yii中数据模型的使用
模型是 CModel 或其子类的实例.模型用于保持数据以及与其相关的业务逻辑. 模型是单独的数据对象.它可以是数据表中的一行,或者一个用户输入的表单. yii数据库操作使用的是PDO,所以使用yii的 ...
- 【Unity】Unity中C#与Android中Java的互相调用遇到的一些问题
1.有关调用的一些问题: (1).在C#中直接调用java中的代码,无返回值: 在java中: public static void setAge(Context context , int leve ...
- OpenCV2.x自学笔记——Qt5.5.1打包exe
[简易步骤] 1.Release模式下生成exe,在release文件夹内,如jujube.exe 2.exe单独拷贝到一个文件夹,如D:\jujube\jujube.exe 3.打开Qt 官方开发环 ...
- CSS,height:auto和height:100%有什么区别?
auto是随内容的高度而撑开的.100%是根据父级元素的高度来决定的.例如:<div style="height:100px;width:200px;"> <di ...
- Visual Studio 2013 新增web项目IIS Express的64位版 转载来源http://www.cnblogs.com/jianyus/p/3524335.html
使用Visual Studio 2012开发SharePoint的应该都遇到过下面的错误“SharePoint 在32位进程中不受支持”,而怎么修改目标平台都不好使,因为VS 2012所配备的IIS ...
- FbinstTool(U盘启动盘制作工具) v1.606 免费绿色版
软件名称: FbinstTool(U盘启动盘制作工具) v1.606 免费绿色版软件语言: 简体中文授权方式: 免费软件运行环境: Win7 / Vista / Win2003 / WinXP / W ...
- Tcp Socket非阻塞recv
最近看了许多关于网络编程的资料,自己小记一下,以方便以后查找. 什么是阻塞socket,什么是非阻塞socket.对于这个问题,我们要先弄清什么是阻塞/非阻塞.阻塞与非阻塞是对一个文件描述符指定的文件 ...
- ssh environment variable
1 down vote When you run a command as an argument to ssh, the command is run directly by sshd; the s ...