注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

信息 灵感 创新

I? =Information,Inspiration,Innovation

 
 
 

日志

 
 
关于我

we are 5. Mathematics, Computation, Programming, Engineering, and Making fun of life.

网易考拉推荐

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

2011-02-27 17:56:41|  分类: Inno Setup |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

       这里将接着在前面的基础上介绍如何在自定义页面上添加按钮。按钮属于Tbutton类,该类继承自TbuttonControl,类定义如下:

TButton = class(TButtonControl)

  property Cancel: Boolean; read write;

  property Caption: String; read write;

  property Default: Boolean; read write;

  property Font: TFont; read write;

  property ModalResult: Longint; read write;

  property OnClick: TNotifyEvent; read write;

end;

其继承关系如下图:

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

 

下面将在一个已经创建好的自定义页面上添加一个按钮:

[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;

procedure InitializeWizard();

begin

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

       myBtn:=TButton.Create(nil);

       myBtn.Parent:=myPage.Surface;

end;

先解释一下这段代码中的含义。

首先是myBtn:=TButton.Create(nil);语句,该语句使用了Tbutton类的成员函数函数Create,创建一个实例化的Tbutton对象,这里使用myBtn获取该对象,参数nil表示为空,另外一个类似的语句是myBtn:=TButton.Create(myPage);通常不用考虑这两个语句的区别,该函数的参数决定了谁来释放创建控件的问题,nil,程序关闭和窗体关闭时都不会释放这个按钮,如果为nil,需要手动释放,如果设为某个页面,则该页面释放时被自动释放。

另外一个是myBtnParent属性,该属性继承自TwinControl类,该属性指定了包含本组件的容器,按钮只能在指定的包容器中显示和移动。

安装程序运行到自定义页面时,将出现如下的窗口:

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

 

这个时候的按钮没有标题,点击也没有任何反应,因为在上面的代码中并没有为其添加相应的属性和事件。

下面的代码则会完善上面的例子(只修改了Code段):

[code]

var

       myPage:TwizardPage;

       myBtn:TButton;

       myFont:TFont;

procedure ClickmyBtn(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.Default:=True;

       myFont:=TFont.Create();

    myFont.Size:=16;

       myFont.Style:=[fsBold];

       myFont.Style:=myFont.Style+[fsItalic];

    (*或者使用

              myFont.Style:=[fsBold,fsItalic];

    *)

       myBtn.Font:=myFont;

    myBtn.Width:=300;

    myBtn.Height:=100;

       myBtn.OnClick:=@ClickmyBtn;

end;

这里新创建了一个TFont的实例myFont,该对象主要设置对象显示字符的大小、颜色、粗体等属性。Caption设置了按钮中显示的文字,Default属性表明该按钮为默认选中,后面是设置显示文字的属性,最后的WidthHeight设置了按钮的尺寸,这两个属性继承自Tcontrol,最后是按钮的事件响应函数,当点击按钮时,执行ClickmyBtn过程,该过程在前面也有实现,注意实现的代码一定要放在调用该过程的前面,否则无法通过编译。运行效果如下:

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

另外按钮还有一些属性,例如TopLeft是控制按钮所在位置的,都可以测试一下。

  评论这张
 
阅读(4204)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016