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

列表框

列表框(ListBox)是Windows应用程序中重要的输入手段,其中包括多个选项用户可以从其中选择一个或者多个,程序根据用户的选择做出相应的处理,列表框在外观上和存储框类似,但是行为却有很大的不同,列表框中项一般是预先给定的,而存储框则可以让用户进行输入,并且列表框中的项被选择之后也会触发事件。Pascal脚本中列表框的类由TlistBox实现,其定义如下:

TListBox = class(TCustomListBox)

property BorderStyle: TBorderStyle; read write;

property Color: TColor; read write;

property Font: TFont; read write;

property MultiSelect: Boolean; read write;

property Sorted: Boolean; read write;

property Style: TListBoxStyle; read write;

property OnClick: TNotifyEvent; read write;

property OnDblClick: TNotifyEvent; read write;

property OnKeyDown: TKeyEvent; read write;

property OnKeyPress: TKeyPressEvent; read write;

property OnKeyUp: TKeyEvent; read write;

end;

层次模型如下:

下面的代码将演示列表框的使用:

[setup]

AppName=Test

AppVerName=TEST

DefaultDirName="E:\TEST"

AppVersion=1.0

[files]

Source:zzz.iss;Flags:dontcopy

[code]

var

myPage:TWizardPage;

list:TListBox;

lbl:TLabel;

procedure ClickListBox(Sender:TObject);

begin

lbl.Caption:='你选择的城市是:'+list.Items.Strings[list.ItemIndex]

end;

procedure InitializeWizard();

begin

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

list:=TListBox.Create(myPage);

list.Parent:=myPage.Surface;

list.Items.Add('北京');

list.Items.Add('上海');

list.Items.Add('香港');

list.Items.Add('武汉');

list.Items.Add('广州');

list.OnClick:=@ClickListBox;

lbl:=TLabel.Create(myPage);

lbl.Parent:=myPage.Surface;

lbl.Top:=list.Top+list.Height+10;

end;

list.ItemIndex返回列表框中选中项索引值,Items.Strings[list.ItemIndex]则是返回该索引值指代项的字符串值,安装页面如下:

另外,列表框也有MultiSelect选项,表示列表框是否支持多选(在支持的前提下,需要按Ctrl键),但是这种性能并不是太好,个人觉得这个时候还不如用多选框效果更好。

最新文章

  1. PS与TOP详解
  2. iOS不使用JSONKit做Dic到JsonString的转换
  3. js在输出时乱码
  4. piap.excel 微软 时间戳转换mssql sql server文件时间戳转换unix 导入mysql
  5. [翻译][MVC 5 + EF 6] 10:处理并发
  6. 第三部分 关于HHibernate中关键字ID的配置
  7. svn密码问题
  8. MPMoviePlayerController导致statusBar消失,导致内存泄露leak
  9. c++ anonymous union,struct -- 匿名联合体和机构体
  10. wwwtyro/cellophane
  11. android之monkey测试
  12. call, apply 和 bind 方法
  13. C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - 对外不要提供Delete方法加强软件的安全性
  14. 用python优雅打开文件及上下文管理协议
  15. Git版本控制工具的简单使用
  16. Java Web整合开发王者归来(JSP + Servlet + Struts + Hibernate + Spring) - 读书笔记
  17. NCPC2016-E- Exponial
  18. ~function(){}() 和(function(){}){}
  19. 安装LAMP PHP的./configure 參数,未出现MYSQ
  20. 005-C3P0连接池配置文件模板

热门文章

  1. 013——数组(十三) array_push array_rand array_reverse
  2. 连接GitHub的方法
  3. LeetCode OJ:Word Pattern(单词模式)
  4. 一月收集几个有用的谷歌Chrome插件
  5. SpringXML方式配置bean的自动装配autowire
  6. Python3的第一个程序(三)
  7. js面向对象之:创建对象
  8. Linux 内核驱动自动创建设备节点并挂载设备
  9. React-Native进阶_2.加载指示动画 ActivityIndicator
  10. js之10天内免登陆