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

存储框

存储框也是典型的窗口可视化组件,同编辑框类似,可以输入、显示文本,但是和编辑框不同的是,编辑框只能编辑、显示单行文本,而存储框则可以对多行文本进行操作。存储框的类定义如下:< xmlnamespace prefix ="o" ns ="urn:schemas-microsoft-com:office:office" />

TMemo = class(TCustomMemo)

property Lines: TStrings; read write;

property Alignment: TAlignment; read write;

property BorderStyle: TBorderStyle; read write;

property Color: TColor; read write;

property Font: TFont; read write;

property HideSelection: Boolean; read write;

property MaxLength: Integer; read write;

property ReadOnly: Boolean; read write;

property ScrollBars: TScrollStyle; read write;

property WantReturns: Boolean; read write;

property WantTabs: Boolean; read write;

property WordWrap: Boolean; read write;

property OnChange: TNotifyEvent; 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;

层次结构模型如下:

存储框同编辑框一样,都是继承自TcustomEdit类,但是在Tmemo上还有一个TcustomMemo类,该类添加了一个属性:Lines,即多行文本的操作。

下面的代码将演示编辑框的创建和属性。

[setup]

AppName=Test

AppVerName=TEST

DefaultDirName="E:\TEST"

AppVersion=1.0

[files]

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

[code]

var

myPage:TwizardPage;

radio1,redio2:TRadioButton;

mm:TMemo;

procedure InitializeWizard();

begin

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

mm:=TMemo.Create(myPage);

mm.Parent:=myPage.Surface;

mm.Text:='存储框测试';

mm.Lines.Add('这是新的一行');

mm.Lines.Insert(0,'我在最前面');

mm.Lines.Add('请删除我,第四行');

mm.Lines.Delete(3);

{行号从0排起,插入到前面}

mm.WordWrap:=True;{自动换行}

mm.WantTabs:=True;{接受Tab键}

mm.WantReturns:=True;{换行}

mm.ScrollBars:=ssVertical;{滚动条}

end;

运行效果如下:

 

下面说说存储框的属性。

由于存储框和编辑框许多属性都相同,这里就不再赘述了,主要说说编辑框的几个特殊属性。ScrollBar指明了存储框的滚动条状态,可选值有ssBoth、ssHorizonal、ssNone、ssVertical,其含义如值所描述。WantReturns属性决定按Enter键之后是点击确认按钮(对应属性值为False)还是存储框换行(对应属性值为True),如果设置该值为False而又想在编辑框中换行时,必须按Ctrl+Enter键,这和QQ的发送消息框是一样的。WantTabs属性决定按下Tab键是切换窗口中组件的焦点(对应属性值为False)还是在存储框中移动光标(对应属性值为True),如果设置该值为False而又想在编辑框中移动光标时,必须按Ctrl+Tab键。最后的一个属性是WordWarp,该属性决定存储框文本输入时是否自动换行,属性值为True则自动换行,为False则不能自动换行。注意如果设置了ScrollBars属性为ssBoth或者ssHorizonal,将不会自动换行,因为滚动条会自动调节宽度。

另外就是Lines属性。该属性其实本身也是一个类,属于Tstring,该属性主要用于操作存储框中的一行文本,可用的函数有Add、Clear、Delete、Insert、Count等。

(转)Inno Setup入门(二十)——Inno Setup类参考(6)的更多相关文章

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

    Inno Setup入门(十六)——Inno Setup类参考(2) http://379910987.blog.163.com/blog/static/33523797201112755641236 ...

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

    分类: Install Setup 2013-02-02 11:27 536人阅读 评论(0) 收藏 举报 nno setup脚本能够支持许多的类,这些类使得安装程序的功能得到很大的加强,通过对这些类 ...

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

    本文转载自:http://blog.csdn.net/yushanddddfenghailin/article/details/17250955 nno setup脚本能够支持许多的类,这些类使得安装 ...

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

    Inno setup脚本能够支持许多的类,这些类使得安装程序的功能得到很大的加强,通过对这些类的使用,将会创建出许多让人惊奇的安装程序,下面开始类的学习. 创建自定义向导页 自定义向导页需要在Init ...

  5. Inno Setup入门(十二)——Pascal脚本(1)

    事件函数(1) Inno Setup支持以下函数和过程. function InitializeSetup(): Boolean; 该函数在安装程序初始化时调用,返回False 将中断安装,True则 ...

  6. (转)Inno Setup入门(十二)——Pascal脚本(1)

    本文转载自:http://blog.csdn.net/yushanddddfenghailin/article/details/17250917 事件函数(1) Inno Setup支持以下函数和过程 ...

  7. Inno Setup入门(十二)——Pascal脚本(1)

    事件函数(1) Inno Setup支持以下函数和过程. function InitializeSetup(): Boolean; 该函数在安装程序初始化时调用,返回False 将中断安装,True则 ...

  8. Inno Setup入门(十)——操作注册表 & 自启程序

    http://379910987.blog.163.com/blog/static/3352379720110259414788/ 有些程序需要随系统启动,或者需要建立某些文件关联等问题,这些都是通过 ...

  9. Inno Setup入门(十九)——Inno Setup类参考(5)

    : Install Setup 2013-02-02 11:29 377人阅读 评论(0) 收藏 举报 单选按钮 单选按钮在安装中也很常见,例如同一个程序可以选择安装不同的性质的功能,例如选择32位或 ...

  10. Inno Setup入门(十八)——Inno Setup类参考(4)

    分类: Install Setup 2013-02-02 11:29 406人阅读 评论(0) 收藏 举报 编辑框 编辑框也叫文本框,是典型的窗口可视化组件,既可以用来输入文本,也可以用来显示文本,是 ...

随机推荐

  1. 转载:【Oracle 集群】RAC知识图文详细教程(四)--缓存融合技术和主要后台进程

    文章导航 集群概念介绍(一) ORACLE集群概念和原理(二) RAC 工作原理和相关组件(三) 缓存融合技术(四) RAC 特殊问题和实战经验(五) ORACLE 11 G版本2 RAC在LINUX ...

  2. 十二、dbms_logmnr(分析重做日志和归档日志)

    1.概述 作用:通过使用包DBMS_LOGMNR和DBMS_LOGMNR_D,可以分析重做日志和归档日志所记载的事务变化,最终确定误操作(例如DROP TABLE)的时间,跟踪用户事务操作,跟踪并还原 ...

  3. 快速求排列组合 lucas定理

    对于C(n, m) mod p.这里的n,m,p(p为素数)都很大的情况. 就不能再用C(n, m) = C(n - 1,m) + C(n - 1, m - 1)的公式递推了. 一般lucas定理的p ...

  4. Python基本常用算法

    什么是算法 就是一个计算的过程,解决问题的方法 用到知识点 递归 调用自身 有结束条件 下次执行相应的复杂度要减少 时间复杂度排序(按效率排序) O(1)<O(logn)<O(n)< ...

  5. 一道简单的JavaScript面试题

    好久没更新博客了,随便写点东西吧. 自从工作之后就特别忙,忙的过程中有时候挺迷茫的,可能是大多数时候写的都是简单的业务代码,很久没好好充电了.最近一直在零碎的上班路上等电梯时间里面学习<图解HT ...

  6. 基于AMBA总线的SPI协议IP核的设计与验证

    https://wenku.baidu.com/view/9542213131126edb6f1a1048.html?mark_pay_doc=2&mark_rec_page=1&ma ...

  7. YXY的测试流程

    不同的公司测试流程都会不一样

  8. MFMailComposeViewController发送邮件

    1.iPhone API已经提供了系统写邮件界面的接口,使用MFMailComposeViewController,用来显示界面. 2.项目中需要添加MessageUi.framework.头文件加入 ...

  9. ueditor使用小结【来源网络】

    原文地址:http://www.cnblogs.com/janes/p/5072496.html ueditor是百度编辑器,官网地址:http://ueditor.baidu.com/website ...

  10. a链接嵌套无效,嵌套链接最优解决办法

    <a>不支持嵌套.例如: <a href="#1">11111111111<a href="#2">22222222222& ...