zoukankan      html  css  js  c++  java
  • Inno Setup入门(十五)——Inno Setup类参考(1)

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

    创建自定义向导页

    自定义向导页需要在InitializeWizard事件函数中创建,通过使用CreateCustomPage函数创建一个空的页面,或者使用CreateInput...Page CreateOutput...Page等函数创建预建的页面,例如CreateInputDirPageCreateInputFilePageCreateOutputProgressPage等函数。当创建好了页面之后,就可以在页面上添加控件了,可以手动创建控件,也可以使用预建页面的特殊函数。大部分的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按钮后,将会出现下面的页面:

    Inno Setup入门(十五)——Inno Setup类参考(1) - Castor - 趁年轻,多折腾~~

     

    另外,我们也可是测试一下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) - Castor - 趁年轻,多折腾~~

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

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

    转自:http://www.360doc.com/content/13/0327/14/4221543_274242607.shtml

  • 相关阅读:
    luogu 1865 数论 线性素数筛法
    洛谷 2921 记忆化搜索 tarjan 基环外向树
    洛谷 1052 dp 状态压缩
    洛谷 1156 dp
    洛谷 1063 dp 区间dp
    洛谷 2409 dp 月赛题目
    洛谷1199 简单博弈 贪心
    洛谷1417 烹调方案 dp 贪心
    洛谷1387 二维dp 不是特别简略的题解 智商题
    2016 10 28考试 dp 乱搞 树状数组
  • 原文地址:https://www.cnblogs.com/xiurui12345/p/3096583.html
Copyright © 2011-2022 走看看