我在这里找到了一个我需要的代码.仅允许在文本框中写入数字.但我仍然想要更多,没有提供“下一步”按钮而没有在此文本框中写入数字.

可以帮我?

procedure NumbersOnly(Sender: TObject; var Key: Char);
var
  S: string;
begin
  S := ('1234567890'#8);
  if Pos(Key,S) = 0 then 
    Key := #0;
end;

解决方法

当用户到达编辑框所在的页面时,您可以在 CurPageChanged事件中设置要启用或禁用的下一个按钮.除非您需要监视该编辑框的更改,以根据是否在该编辑框中输入了某些内容来启用或禁用下一个按钮.为此,您需要为OnChange事件编写处理程序.这是一个例子:
[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program

[Code]
var
  MyEdit: TNewEdit;
  MyPage: TWizardPage;

procedure MyEditChange(Sender: TObject);
begin
  { enable the next button if the edit Box is not empty; disable otherwise }
  WizardForm.NextButton.Enabled := MyEdit.Text <> '';
end;

procedure MyEditKeyPress(Sender: TObject; var Key: Char);
var
  KeyCode: Integer;
begin
  { allow only numbers }
  KeyCode := Ord(Key);
  if not ((KeyCode = 8) or ((KeyCode >= 48) and (KeyCode <= 57))) then
    Key := #0;
end;

procedure InitializeWizard;
begin
  MyPage := CreateCustomPage(wpWelcome,'Caption','Description');

  MyEdit := TNewEdit.Create(WizardForm);
  MyEdit.Parent := MyPage.Surface;
  MyEdit.Left := 0;
  MyEdit.Top := 0;
  MyEdit.Width := 150;
  MyEdit.OnChange := @MyEditChange;
  MyEdit.OnKeyPress := @MyEditKeyPress;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
  { if the currently turned wizard page is the one with the edit Box,enable }
  { the next button if the edit Box is not empty; disable otherwise }
  if CurPageID = MyPage.ID then
    WizardForm.NextButton.Enabled := MyEdit.Text <> '';
end;

inno-setup – 在Inno Setup的文本框中需要一个数字的更多相关文章

  1. 使用placeholder属性设置input文本框的提示信息

    这篇文章主要介绍了使用placeholder属性设置input文本框的提示信息,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下

  2. ios7 – WebView:IFRAME中的文本框停止接受输入

    的test.html:input.html:点按文本框内部并尝试输入.一切正常.现在点击文本框外部,然后再次点击内部,或者隐藏并显示虚拟键盘.现在打字不再起作用了.有没有人见过这个?id=133044中很难找到但已知的错误

  3. Swift UITextField,UITextView,UISegmentedControl,UISwitch

    下面我们通过一个demo来简单的实现下这些控件的功能.首先,我们拖将这几个控件拖到storyboard,并关联上相应的属性和动作.如图:关联上属性和动作后,看看实现的代码:

  4. Swift UI专项训练2 本地化及自动布局

    首先我们新建一个工程,然后来做本地化,本地化就是根据用户设置的语言等等信息来显示。那么如何来设置呢,打开我们的工程,点开SupportingFiles中的Info.plist。现在我们来编辑第一个页面。在storyboard中增加一个文本框。自动布局就是我的文本框根据设备尺寸自动调整,专业术语叫约束,如何对文本框进行约束?

  5. [Swift]UIKit学习之UITextField的用法

    UIKit学习之UITextField的用法UITextField的创建:在Stroyboard中使用Ctrl+Drag拖拽法创建代码创建参考资料:

  6. Swift - 文本输入框UITextField的用法

    1,文本框的创建,有如下几个样式:UITextBorderStyle.None:无边框UITextBorderStyle.Line:直线边框UITextBorderStyle.RoundedRect:圆角矩形边框UITextBorderStyle.Bezel:边线+阴影1234lettextField=UITextField(frame:CGRectMake(10,160,200,30))//设置

  7. Swift - 点击输入框外部屏幕关闭虚拟键盘

    我们如果把文本框的ReturnKey设置成Done,然后在storyboard中将文本框的DidEndOnExit事件在代码里进行关联。如果要实现当用户点击文本框之外的舞台屏幕时也能关闭虚拟键盘。这时就要让屏幕的背景响应TouchDown事件。由于背景是UIView控件,不能直接拖拽关联Touch事件。点击右上角的Showtheidentityinspector图标,设置CustomClass的Class为UIControl就可以事件关联了。

  8. Swift - 文本输入框内容改变时响应,并获取最新内容

    同时在viewDidLoad方法内将文本框的代理设置为当前实例。然后实现textFile的shouldChangeCharactersInRange方法就能在文本框将要变化的时候执行一些代码。比如在这个方法内打印出文本框的内容,会发现每当我们改变文本框的内容时,打印出来的是上一次的内容。再输入2,文本框上是12,但打印出来却是1.要获取最新内容,则需要String的stringByReplacingCharactersInRange方法,但这个方法在Swift的String中又不支持。

  9. Swift中TextField

    //判断文本框是否为空ifIDTextField?

  10. swift – 当焦点在搜索栏上时,如何向UISearchController添加另一个文本框?

    当用户将焦点放在搜索栏上,正好位于导航栏上的“搜索栏”下方时,我正在尝试为“位置”输入添加另一个文本框.我有什么,我想要去的例子:我试过这样的东西,这不行:任何帮助将是伟大的!

随机推荐

  1. delphi – 主窗口按进程名称处理

    DelphiXe,Win7x64如何从进程名称(exe文件的完整路径)获取主窗口句柄,或至少一个类或窗口名称(如果该进程只有一个窗口).例:解决方法我同意Petesh的说法,你需要枚举顶级窗口并检查创建它的进程的模块文件名.为了帮助您开始枚举顶级窗口,这是一个delphi实现.首先,当你回调给你时,你需要一些与EnumWindows方法通信的方式.为此声明一条记录,该记录将保存您要查找的模块的文件

  2. 如何在Delphi中纯粹通过RTTI信息(即不使用任何实际对象实例)获取TObjectList的子项类型?

    我正在使用RTTI实现用于流式传输任意Delphi对象的通用代码,并且为了使其工作(更具体地说,为了使加载部分工作),我需要以某种方式获得TObjectList的子项类型<T>不使用任何实际对象实例的字段.要求不使用任何实际对象实例的明显原因是,在从流加载对象的情况下(仅基于要加载的对象的类类型的知识),我将不会有任何实例在加载完成之前完全可用–我宁愿只能访问相关类的纯RTTI数据.我希望能

  3. inno-setup – Inno Setup – 安装程序背景图片

    图像作为安装程序背景如何用inno5.5.9做到这一点?

  4. inno-setup – Inno Setup – 如何添加多个arc文件进行解压缩?

    使用InnoSetup解压缩弧文件.我希望有可能解压缩多个arc文件以从组件选择中安装文件(例如).但仍然显示所有提取的整体进度条.这可能吗?的回答的修改预备是相同的,参考其他答案.在ExtractArc中,为要提取的每个存档调用AddArchive.

  5. delphi – 如何在DataSet的帮助下在TAdvStringGrid中显示数据库中的BLOB图像

    解决方法CreateBlobStream正在创建一个TStream对象,而不是TMemoryStream.由于您不想将JPG写入数据库,因此应使用bmRead而不是bmReadWrite.我不习惯sqlite,但你必须确保使用合适的二进制日期类型.为了确保存储的图像真的是JPG,您应该编写JPG以进行测试,例如:

  6. inno-setup – 在Inno Setup的Code部分下载程序后运行程序

    如何运行我通过Internet下载的应用程序,在代码部分中使用,并等待该应用程序完成运行.我有,使用InnoTools下载程序,下载这两个文件,我想,在第二个完成下载后运行该下载,或jdk-8u111-windows-x64.exe,然后继续安装.解决方法使用其他下载插件,而不是ITD(请参阅下面的原因).例如,InnoDownloadPlugin.当您包含idp.iss时,它定义了一个全局IDP

  7. progress-bar – Inno Setup Run部分的简单进度页面

    我的安装程序非常简单,它基本上是:>欢迎页面>进展页面>最终页面欢迎页面和最终页面是标准页面.在Progress页面,我正在静默安装一堆其他程序.实际的脚本是在[Run]部分中安装每个程序.问题是酒吧达到100%然后停留在那里.我只能更改消息文本.我想要实现的是使用Pascal脚本显示进度,例如:这样我就可以显示更准确的进度条.这就是我所拥有的:问题是,当我构建安装程序时,它不显示欢迎页面.我做错了什么?

  8. delphi – 如何使“显示/隐藏桌面图标”设置生效?

    下面的代码调用SHGetSetSettings函数来隐藏桌面图标但它只是从视图菜单中取消选中“显示桌面图标”.我打电话给SHChangeNotify;更新桌面,但这不起作用?解决方法isa,要刷新桌面,您可以将F5键发送到progman窗口隐藏桌面图标的另一种方法是再次显示

  9. inno-setup – Inno Setup – 避免显示子安装程序的文件名

    我试图使用InnoSetup–Howtohidecertainfilenameswhileinstalling?(FilenameLabel)的想法Theonlysuresolutionistoavoidinstallingthefiles,youdonotwanttoshow,usingthe[Files]section.Installthemusingacodeinstead.UsetheEx

  10. inno-setup – Inno Setup磁力链接下载实施

    我目前正在使用InnoDownloadPlugin为我的安装程序下载文件,这个问题最大的问题是faila正确下载文件.因为连接不良等诸多原因.我想添加一种替代方法来下载文件,因此用户可以选择是否需要常规方式或torrent方式.我知道我可以使用aria2c.exe应用程序(https://aria2.github.io/),有人可以帮我实现它的inno设置代码吗?我需要的是使用torrent(ar

返回
顶部