(转)Inno Setup入门(十五)——Inno Setup类参考(1)

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

nno setup脚本能够支持许多的类,这些类使得安装程序的功能得到很大的加强,通过对这些类的使用,将会创建出许多让人惊奇的安装程序,下面开始类的学习。

创建自定义向导页

自定义向导页需要在InitializeWizard事件函数中创建,通过使用CreateCustomPage函数创建一个空的页面,或者使用CreateInput...Page和CreateOutput...Page等函数创建预建的页面,例如CreateInputDirPage、CreateInputFilePage、CreateOutputProgressPage等函数。当创建好了页面之后,就可以在页面上添加控件了,可以手动创建控件,也可以使用预建页面的特殊函数。大部分的Create...Page函数的第一个参数通常都是Page ID,该参数指定了新创建的页面被放在哪个已存在的页面后面。有几种方法获取一个已经存在页面的Page ID,例如用户创建的页面有一个属性是ID,该属性为一个只读的整型,其值即为页面的ID,内建的向导页有预定的ID,可用的名称如下表:


wpWelcome


wpLicense


wpPassword


wpInfoBefore


wpUserInfo


wpSelectDir


wpSelectComponents


wpSelectProgramGroup


wpSelectTasks


wpReady


wpPreparing


wpInstalling


wpInfoAfter


wpFinished

   

当自定义页面创建完成后,安装程序将会显示,并会像对待预建页面一样处理他们,例如调用所有页面都关联的NextButtonClick和ShouldSkipPage事件函数。

CreateCustomPage函数原型如下:

function CreateCustomPage(const AfterID: Integer; const ACaption, ADescription: String): TwizardPage

第一个参数和前面的Page ID是一样的,可以使用上述表中任何一个作为参数,第二个参数Acaption指定页面的标题,该标题将会显示在页面上方,第三个参数则是对该页面的描述。函数的返回值是一个TwizardPage类,根据Inno Setup的帮助文档,该类的原型如下:

TWizardPage = class(TComponent)

property ID: Integer; read;

property Caption: String; read write;

property Description: String; read write;

property Surface: TNewNotebookPage; read write;

property SurfaceHeight: Integer; read write;

property SurfaceWidth: Integer; read write;

property OnActivate: TWizardPageNotifyEvent; read write;

property OnBackButtonClick: TWizardPageButtonEvent; read write;

property OnCancelButtonClick: TWizardPageCancelEvent; read write;

property OnNextButtonClick: TWizardPageButtonEvent; read write;

property OnShouldSkipPage: TWizardPageShouldSkipEvent; read write;

end;

TWizardPageNotifyEvent = procedure(Sender: TWizardPage);

TWizardPageButtonEvent = function(Sender: TWizardPage): Boolean;

TWizardPageCancelEvent = procedure(Sender: TWizardPage; var ACancel, AConfirm: Boolean);

TWizardPageShouldSkipEvent = function(Sender: TWizardPage): Boolean;

下面的程序将会创建一个最简单的自定义页面,并显示在欢迎页面后面:


[setup]

AppName=Test

AppVerName=TEST

DefaultDirName="E:\TEST"

AppVersion=1.0

[files]

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

[code]

procedure InitializeWizard();

begin

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

end;

运行后,当从Welcome页面点击Next按钮后,将会出现下面的页面:

另外,我们也可是测试一下CreateCustomPage的返回值TwizardPage类的属性。例如下面这个例子将测试一下ID属性和NextButtonClick属性:


[code]

var

myPage:TwizardPage;

myPageID:Integer;

function NextButtonClick(CurPageID:Integer): Boolean;

begin

if CurPageID=myPageID then

begin

if MsgBox(‘确定要离开本页面吗?‘, mbConfirmation, MB_YESNO or MB_DEFBUTTON2) = IDYES then result:=true;

end

else

result:=true;

end;

procedure InitializeWizard();

begin

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

myPageID:=myPage.ID;

end;

运行该程序,当到达自定义页面并单击Next的后,将会出现如下的确认对话框:

选择“是”将到下一页,“否”将留在本页。

虽然上面的页面没有任何空间,但是,在成功创建好页面之后,往上面添加各种控件也不是将会变得简单,这就像是把地基打好了之后,盖房子就方便多了。

(转)Inno Setup入门(十五)——Inno Setup类参考(1)

时间: 2024-08-03 07:37:44

(转)Inno Setup入门(十五)——Inno Setup类参考(1)的相关文章

(转)Inno Setup入门(五)——添加readme文件

本文转载自:http://blog.csdn.net/yushanddddfenghailin/article/details/17250771 这个实现起来很简单,就是在[files]段中的某个预先作为readme的文件后面添加标志位isreadme: [setup] ;全局设置,本段必须 AppName=Test AppVerName=TEST DefaultDirName="E:\TEST" AppVersion=1.0 [files] Source: "F:\desk

[WebGL入门]十五,为多边形涂抹颜色(顶点颜色的指定)

注:文章译自http://wgld.org/,原作者杉本雅広(doxas),文章中如果有我的额外说明,我会加上[lufy:],另外,鄙人webgl研究还不够深入,一些专业词语,如果翻译有误,欢迎大家指正. 本次的demo的运行结果 增加顶点属性的个数 上次,终于绘制了一个三角形,但是只绘制了一个纯白色的多边形.这次,给多边形的顶点中添加颜色属性,基本上做的事情和上一篇文章一样,只是稍微增加点步骤而已.首先,就像以前多次重复的那样,顶点可以包含很多种情报(参考:顶点缓存和基础),而且每一个情报叫做

第十五章 文件属性类的实现

                  第十五章    文件属性类的实现        根用户的权限也不能是无限大.必须考虑到保护用户的隐私!用户的文件内容.程序代码可设置为根用户也不能观看,只能是文件拥有者可以查看.修改.但根用户可以删除一切非根用户的文件.也可以查看用户的目录.所以,i_mode字符更改如下:      BU16 i_mode; // 描述文件的访问权限:文件的读.写.执行权限  // i_mode.15-13  ftype; 文件类型: 0-符号软连接文件, // 1-硬连接文

Inno Setup入门(五)——添加readme文件

这个实现起来很简单,就是在[files]段中的某个预先作为readme的文件后面添加标志位isreadme: [setup] ;全局设置,本段必须 AppName=Test AppVerName=TEST DefaultDirName="E:\TEST" AppVersion=1.0 [files] Source: "F:\desktop\test\ipmsg.exe"; DestDir: "{app}"; Source: "F:\de

Android入门(十五)通知

原文链接:http://www.orlion.ga/663/ 1.通知的基本用法 创建通知的步骤,首先需要一个NotificationManager来对通知进行管理,可以调用Context的getSystemService()方法获取到.getSystemService()方法接收到一个字符串参数用于确定获取系统的哪个服务,这里我们传入Context.NOTIFICATION_SERVICE即可,因此获取NotificationManager的实例就可以写成: NotificationManag

Java笔记十五.深入理解类和对象(2)

类是对某一类事务的描述,是抽象的.概念上的定义:对象是实际存在的该类事务的个体,因而也称实例.可见,类描述了对象的属性和对象的行为,一个类可以对应多个对象. 一.对象 1.new关键字 在Java编程中,我们通过使用new关键字和想要创建对象的类名来实例化一个类的对象.实例化对象作用,是为对象分配内存,由new操作符根据构造方法决定新建对象分配多大的内存来存储对象.new操作符需要一个参数,就是类的构造方法,构造方法是用于初始化对象的特别方法.new操作符为对象分配内存后将调用类的构造方法确定对

二十五.面向对象(经典类和新式类)

经典类和新式类 class A(object): pass class B(A): pass class C(B): pass class D(object): pass class E(D,C): pass class F(object): pass class G(F): pass class H(C,G): pass class Foo(E,H): pass # a1=Foo() print(Foo.__mro__) # (<class '__main__.Foo'>, <clas

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

本文转载自:http://blog.csdn.net/yushanddddfenghailin/article/details/17250967 这里将接着在前面的基础上介绍如何在自定义页面上添加按钮.按钮属于Tbutton类,该类继承自TbuttonControl,类定义如下: TButton = class(TButtonControl) property Cancel: Boolean; read write; property Caption: String; read write; p

(转)Inno Setup入门(十)——操作注册表

本文转载自:http://blog.csdn.net/yushanddddfenghailin/article/details/17250871 有些程序需要随系统启动,或者需要建立某些文件关联等问题,这些都是通过在安装程序中对注册表进行操作的结果.Inno Setup中通过[registry]段实现对注册表的操作. 本段说明: 参数列表: 参数 说明 Root 根键.必须是下列中的一个: HKCR (HKEY_CLASSES_ROOT) HKCU (HKEY_CURRENT_USER) HKL