- 浏览: 29127 次
-
最新评论
文章列表
复选框
复选框(CheckBox)用于多个并不互斥的几个选项中作出一个或者多选择,例如字体可以有粗体、斜体和下划线,这三种状态可以任意组合,像这样的选项可以采用复选框实现。Pascal脚本中对应的类是TcheckBox,其定义如下:< xmlnamespace prefix ="o" ns ="urn:schemas-microsoft-com:office:office" />
TCheckBox = class(TCustomCheckBox)
prop
列表框
列表框(ListBox)是Windows应用程序中重要的输入手段,其中包括多个选项用户可以从其中选择一个或者多个,程序根据用户的选择做出相应的处理,列表框在外观上和存储框类似,但是行为却有很大的不同,列表框中项一般是预先给定的,而存储框则可以让用户进行输入,并且列表框中的项被选择之后也会触发事件。Pascal脚本中列表框的类由TlistBox实现,其定义如下:
TListBox = class(TCustomListBox)
在写了22篇日志之后,由于项目的原因,中间有所停顿,现在觉得有点时间了,认真地研究一下,做个了断,从Inno Setup入门(二十二)——Inno Setup类参考(8)接着写。
上班挺累的。今天就简单说一下ProgressBar。
TNewProgressBar = class(TWinControl)
property Min: Longint; read write;
property Max: Longint; read write;
property Position: Longint; read write;
property State: TNewProgressBarState read write;
这里介绍一下FolderTreeView 类。TFolderTreeView = class(TCustomFolderTreeView)
property OnChange: TNotifyEvent; read write;
property OnRename: TFolderRenameEvent; read write;
end;
而TCustomFolderTreeView又继承自TWinControl,所以和其他基本控件一样具有许多类似的属性,此处不再重复。贴出代码段:
[code]
var
myPage:TWizardPage;
ftv: TFol ...
今天说说TNewCheckListBox类。该类和ListBox差不多,只是下面的项可以用CheckBox或者RadioButton选择,是一种比较复杂的类型。
该类继承自TCustomListBox,自身具有以下属性和函数: TNewCheckListBox = class(TCustomListBox)
function AddCheckBox(const ACaption, ASubItem: String; ALevel: Byte; AChecked, AEnabled, AHasInternalChildren, ACheckWhenParentChecked: Boo ...
接下来分析一下使用动态链接库的问题。今天上了一天班,囧。
这里讲讲如何调用dll中的函数。先来一个简单的例子:
[code]
var
myPage:TWizardPage;
Button :TNewButton;
Cnt:Integer;
function GetCurrentProcessId(): Integer;
external 'GetCurrentProcessId@C:\Windows\System32\kernel32.dll';
许多程序在安装过程中,会有升级的可能,但是又有个问题就是,当前的程序正在运行,这样就不能达到升级的效果,因此有必要坚持并能够结束指定程序的过程,如何在安装包中实现呢?其实很简单,就是调用dll,关于dll,可以用C++或者VB编写,个人推荐用C++,这样编写的dll文件似乎在数据类型上能够和pascal更好地融合,代码很简单,这里我就不啰嗦了,把重点集中到调用上,下面是一个例子:[code]
var
myPage:TWizardPage;
Button :TNewButton;
function GetPIDByName(pname:string):Integer;
...
概述
前面分两节介绍了如何使用dll,这里将对调用外部或者系统dll做一些综述。Pascal脚本能调用外部dll(标准Win32 API或者各程序员编写的dll)中的函数,在调用外部dll中的函数前,需要声明所调用的函数原型,使用external声明dll文件,对于一个Pascal描述的函数原型,例如function A(B: Integer): Integer;可以有三种方式调用:
方法一:
function A(B: Integer): Integer;
external '< dll中函数名称> >@< dll文件路径 >';
方法二:
...
这个实现起来很简单,就是在[files]段中的某个预先作为readme的文件后面添加标志位isreadme:
[setup]
;全局设置,本段必须
AppName=Test
AppVerName=TEST
DefaultDirName="E:\TEST"
AppVersion=1.0
Icons这一可选段定义所有创建在开始菜单和\或其它位置 (比如桌面) 的快捷方式。一个例子如下:
[setup]
;全局设置,本段必须
AppName=Test
AppVerName=TEST
DefaultDirName="E:\TEST"
AppVersion=1.0
[files]
Source: "F:\desktop\ipmsg.exe"; DestDir: "{app}"
Setup段中的compression指定了采用的压缩方式,较高的压缩率需要较多的时间或者需要更大的内存空间,可用的值如下:
zip
zip/1到zip/9
bzip
bzip/1 到bzip/9
修改安装过程中的图片
一般编译之后,安装过程中出现在左边图片是是下图这个样子的:
其实也可以修改它,只需要在setup段中作一点稍微的修改,加一行代码即可:
一个最简单的安装脚本:
1.最简单的安装文件脚本:
[setup]
AppName=Test
AppVerName=TEST
DefaultDirName="E:\TEST"
AppVersion=1.0
[files]