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

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

编辑框
编辑框也叫文本框,是典型的窗口可视化组件,既可以用来输入文本,也可以用来显示文本,是程序设计中最常用的组件之一,可以获取用户输入的许多信息。Pascal中的编辑框由类Tedit实现,该类的定义如下:

TEdit = class(TCustomEdit)
property AutoSelect: Boolean; read write;
property AutoSize: Boolean; read write;
property BorderStyle: TBorderStyle; read write;
property CharCase: TEditCharCase; read write;
property Color: TColor; read write;
property Font: TFont; read write;
property HideSelection: Boolean; read write;
property MaxLength: Integer; read write;
property PasswordChar: Char; read write;
property ReadOnly: Boolean; read write;
property Text: String; 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;

该类的层次模型如下:
在这里插入图片描述
下面的代码将演示创建编辑框,以及编辑框的Text属性:

[setup]
AppName=Test
AppVerName=TEST
DefaultDirName="E:\TEST"
AppVersion=1.0

[files]
Source: "F:\desktop\Inno\ipmsg.exe";Flags:dontcopy
[code]
var
	myPage:TwizardPage;
	myBtn:TButton;
	ed1,ed2,ed3:TEdit;
	procedure ClickmyBtn(Sender: TObject);

begin
	ed3.Text:=ed1.Text+' '+ed2.Text;
end;
procedure InitializeWizard();

begin
myPage:=CreateCustomPage(wpWelcome, '标题:自定义页面', '描述:这是我的自定义页面');
myBtn:=TButton.Create(myPage);
myBtn.Parent:=myPage.Surface;
myBtn.Caption:='点我~';
myBtn.OnClick:=@ClickmyBtn;
ed1:=TEdit.Create(myPage);
ed1.Parent:=myPage.Surface;
ed1.Top:=myBtn.Top+30;
ed1.Width:=myBtn.Width;
ed2:=TEdit.Create(myPage);
ed2.Parent:=myPage.Surface;
ed2.Top:=ed1.Top+30;
ed2.Width:=myBtn.Width;
ed3:=TEdit.Create(myPage);
ed3.Parent:=myPage.Surface;
ed3.Top:=ed2.Top+30;
ed3.Width:=myBtn.Width;
end;

属性Text用于设置或获取文本框中的内容,注意不管是设置还是获取,参数一定必须是String的类型,运行效果如下:
在这里插入图片描述
如果是想实现两个数的代数运算,而不是字符串的拼接,则按钮的OnClick过程应该做如下修改:

procedure ClickmyBtn(Sender: TObject);
var
	a,b:Extended;
begin
	a:=StrToFloat(ed1.Text);
	b:=StrToFloat(ed2.Text);
	ed3.Text:=FloatToStr(a+b);
end;

StrToFloat和FloatToStr分别实现字符串转实数,实数转字符串。在第一、第二个文本框中输入数值后,点击按钮将第三个文本框中的内容设置为两数的和。下面再说说其他的属性。修改代码段如下:

[code]
var
	myPage:TwizardPage;
	myBtn:TButton;
	ed1,ed2,ed3:TEdit;
	a,b,c:String;
procedure ClickmyBtn(Sender: TObject);

begin
	a:=ed1.Text;
	b:=ed2.Text;
	c:=a+b;
	ed3.Text:=c;
end;
procedure InitializeWizard();

begin
	myPage:=CreateCustomPage(wpWelcome, '标题:自定义页面', '描述:这是我的自定义页面');
	myBtn:=TButton.Create(myPage);
	myBtn.Parent:=myPage.Surface;
	myBtn.Caption:='点我~';
	myBtn.OnClick:=@ClickmyBtn;
	ed1:=TEdit.Create(myPage);
	ed1.Parent:=myPage.Surface;
	ed1.Top:=myBtn.Top+30;
	ed1.Width:=myBtn.Width;
	ed1.CharCase:=ecUpperCase;{大写}
	ed1.ShowHint:=True;
	ed1.Hint:='字母将会变为大写';
	ed2:=TEdit.Create(myPage);
	ed2.Parent:=myPage.Surface;
	ed2.Top:=ed1.Top+30;
	ed2.Width:=myBtn.Width;
	ed2.PasswordChar:='#';{密码样式}
	ed3:=TEdit.Create(myPage);
	ed3.Parent:=myPage.Surface;
	ed3.Top:=ed2.Top+30;
	ed3.Width:=myBtn.Width*2;
	ed3.ReadOnly:=true;{只读}
end;

上面介绍了四个属性:CharCase将设置文本显示的格式,可以有三个值:(ecNormal, ecUpperCase, ecLowerCase,分别为正常方式,大写方式,小写方式;PasswordChar属性将输入的文本替换为制定的样式;ReadOnly属性将使得该文本框不接受用户输入;Hint和ShowHint属性是用户的鼠标停留在该文本框上时,给出相应的提示文本,注意只有在ShowHint设置为True的时候才会显示。

另外,编辑框也能对一些事件做出相应,例如单击、双击,文本内容发生变化等,实现起来和按钮的差不错,这里就不再啰嗦了。最后需要介绍的是三个处理按键的属性: OnKeyDown、OnKeyPress和OnKeyUp

这三个属性是当用户光标停留在该文本框中时,当用户按下了键盘上的某个键时,会调用该属性指定的过程,测试代码如下:

[code]
var
	myPage:TwizardPage;
	ed:TEdit;
	procedure EditKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);

begin
if (key=67) and (Shift=[ssAlt]) then
Msgbox('你按下了Alt+c',MBInformation,MB_OK);
end;
procedure InitializeWizard();

begin
myPage:=CreateCustomPage(wpWelcome, '标题:自定义页面', '描述:这是我的自定义页面');
ed:=TEdit.Create(myPage);
ed.Parent:=myPage.Surface;
ed.OnKeyDown:=@EditKeyDown;
end;

在编辑框中输入时,用户按下Alt+C组合时,将会做出响应,弹出一个消息框,这样可以对我们感兴趣的按键组合做出相应的动作,例如我们想屏蔽粘贴这项功能,则修改代码如下:

procedure EditKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);

begin
if (key=86) and (Shift=[ssCtrl]) then
Msgbox('粘贴无效,请手动输入',MBInformation,MB_OK);
ed.text:='';
end;

不过这里要说明的是,这还不能屏蔽右键粘贴,只是屏蔽了Ctrl+V的方式。另外两个按键属性和这里介绍的KeyDown差不多,可对照测试一下。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值