Inno Setup入门(十九)——Inno Setup类参考(5)

Inno Setup入门(十九)——Inno Setup类参考(5)

单选按钮
单选按钮在安装中也很常见,例如同一个程序可以选择安装不同的性质的功能,例如选择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)。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
习惯使用的打包工具就是 Inno Setup,而 Inno Setup 是用于安装软件的流行程序。不幸的是,没有官方的解压程序-将文件从自解压的可执行文件中取出的唯一方法是运行它。对于使用 Inno Setup 创建的安装程序的用户,Inno Setup Unpacker 可以派上用场。该工具严格从命令行运行,可让您从其安装包中快速提取安装文件。 解决此问题的一个软件是 Sergei Wanin 的 InstallExplorer,它是 FAR Manager 的插件,可以解压缩多种安装型,包括 Inno Setup(IS)。 但是由于它没有及时更新,因此大部分时间都不支持最新的 IS,因此该程序诞生了。 Inno Setup 提取工具 Inno Setup Unpacker 中文版Inno Setup 提取工具 Inno Setup Unpacker 中文版 与 InstallExplorer 相比优点是: Innounp 是开源的,基于IS源码。 因此,它更有可能支持将来的IS版本。 它会恢复安装脚本(.iss文件)的一部分,包括注册表更改和已编译的 Innerfuse/RemObjects Pascal 脚本(如果有)。 Inno Setup 管理变得简单 Inno Setup 是一个流行且可靠的应用程序,可通过帮助您生成脚本来促进程序安装程序的创建。使用 Inno Setup 编译代码会导致从容器中解压缩安装文件,只能通过自解压文件来完成。换句话说,您需要创建一个自解压的可执行文件来封装安装文档。 Inno Setup Unpacker 可以帮助您避免此操作,这特别有用,因为多种系统安全协议会阻止可执行文件的下载。该程序允许您通过几次按键从存档中提取文件。 从命令行运行程序 Inno Setup Unpacker 没有 GUI,但是您可以查看所有功能并从命令行轻松操作它。可能需要管理权限才能打开程序,但否则程序运行就没有问题。 Inno Setup Unpacker 的功能包括命令和选项。这些命令包括显示安装信息,详细列出文件,将文件提取到当前目录。您也可以提取不带路径的文件并测试它们的完整性。 至于选项,例如,您可以启用批处理模式,提取内部嵌入式文件,使用密码解密安装或提取所有重复文件的副本。 简单的使用说明 在命令行中打开 Inno Setup Unpacker 时,您可以查看命令,选项和使用说明的列表。该程序使您可以快速,轻松地从 Inno Setup 软件包中提取文件。此外,它使用简单,无需安装。 用法 Innounp是一个控制台应用程序,它使用命令行选项来找出要执行的操作。有关使用FAR或Total Commander作为前端的更人性化的界面,请参见下面的MultiArc部分。 Windows资源管理器爱好者:nullz制作了一些.reg脚本,以将innounp添加到右键菜单中,而Richard Santaella为innounp制作了图形包装(在下载页面上获取)。 innounp [command] [options] [@filelist] [filemask …] 命令: (no) 显示常规安装信息 -v 详细列出文件(带有大小和时间戳) -x 从安装中提取文件(到当前目录,另请参见 -d) -e 提取没有路径的文件 -t 测试文件的完整性 选项: -b 批处理(非交互式)模式-不会提示您输入密码或更改磁盘 -q 提取时不指示进度 -m 处理内部嵌入式文件(例如 license 和 uninstall.exe) -pPASS 使用密码解密安装 -dDIR 将文件提取到 DIR 中(可以是绝对路径,也可以是相对路径) -cDIR 指定 DIR 是安装中的当前目录 -n 不要尝试解压缩新版本 -fFILE 与 -p 相同,但是从 FILE 读取密码 -a 处理重复文件的所有副本 -y 在所有查询中均假设为“是”(例如覆盖文件) 如果安装程序具有 setup.0(在不使用 SetupLdr 的情况下进行安装),请在 setup.0 而不是 setup.exe 上运行 innounp。 要从特定目录提取所有文件,请使用 dirname \ *.*,而不仅仅是 dirname。 默认情况下,所有文件都提取到当前目录。使用 -d 替代此行为。例如,-dUnpacked 将在当前目录内创建一个名为 Unpacked 的目录,并将提取的文件放在此处。 -c 选项很难解释。假设您在文件管理器中打开了一个安装,然后浏览到 {app}\subdir\program.exe。现在,如果将 program.exe 复制到另一个位置,将创建整个目录树
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值