执行这些代码, Edit1只能输入数字,小数点和负号,负号和小数点只能输入一个,负号必须在最前,粘贴的数字必须完全正确.

执行这些代码, Edit1只能输入数字,小数点和负号,负号和小数点只能输入一个,负号必须在最前,粘贴的数字必须完全正确.

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    procedure FormCreate(Sender: TObject);
  private
    Edit1OldProc: TWndMethod;
    procedure Edit1NewProc(var Message: TMessage);
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

uses Clipbrd;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Edit1OldProc := Edit1.WindowProc;
  Edit1.WindowProc := Edit1NewProc;
end;

procedure TForm1.Edit1NewProc(var Message: TMessage);
var
  s: string;
  v: double;
begin
  case Message.Msg of
    WM_PASTE:
      begin
        s := Clipboard.astext;
        s := copy(edit1.Text, 0, edit1.SelStart) + s + copy(edit1.Text, edit1.SelStart + edit1.SelLength, length(edit1.Text));
        if trystrtofloat(s, v) then
          Edit1OldProc(Message)
        else
          ShowMessage(‘只允许输入数字‘);
      end;
    WM_CHAR:
      begin
        if (TWMCHAR(Message).CharCode = 45) then
          if (Pos(‘-‘, Edit1.Text) = 0) and (Edit1.SelStart = 0) then
          Edit1OldProc(Message);
        if (TWMCHAR(Message).CharCode = 46) then
          if (Pos(‘.‘, Edit1.Text) = 0) then
          Edit1OldProc(Message);
        if TWMCHAR(Message).CharCode in [48..57, 8, 3] then
          Edit1OldProc(Message);
        if (TWMCHAR(Message).CharCode = 22)  then
          Edit1OldProc(Message);
      end;
  else
    Edit1OldProc(Message);
  end;
end;
-----------
时间: 2024-10-27 10:46:52

执行这些代码, Edit1只能输入数字,小数点和负号,负号和小数点只能输入一个,负号必须在最前,粘贴的数字必须完全正确.的相关文章

UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) - walterlv

原文:UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) - walterlv UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 2018-12-30 14:08 UWP 中使用 WebView 时可以在网页中额外执行一些代码.于是你几乎可以在网页上做任何事情,那些你可以在浏览器控制台中做的事情. 本文将介绍做法. 本文内容 准备环境 执行 JavaScript 代码 模拟用户输入 JavaScript eval(string

解决Button设置disabled后无法执行后台代码问题

一.开始调式下面的程序,发现Button在js中设置disabled后无法执行后台代码(btnsave_Click)问题 <asp:Button ID="btnsave" runat="server" Text="确 定" OnClick="btnsave_Click" OnClientClick="this.disabled = true;alert('提示');" /> 二.有的朋友会认为在

C# WinForm程序执行JS代码的多种方法

方法一 使用微软官方组件Interop.MSScriptControl 1.msscript.ocx下载的地址   http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=D05FCF37-4D9F-4769-9442-0BCEEF907033 或者点击此处下载 Interop.MSScriptControl.dll 2.项目中引用 msscript.ocx 或者 Interop.MSScriptCon

转:selenium webdriver 执行javascript代码

在用selenium webdriver 编写web页面的自动化测试代码时,可能需要执行一些javascript代码,selenium本身就支持执行js,我们在代码中import org.openqa.selenium.JavascriptExecutor;就可以使用executeScript.executeAsyncScript这两个方法了,其中executeScript是同步方法,用它执行js代码会阻塞主线程执行,直到js代码执行完毕:executeAsyncScript方法是异步方法,它不

图片加载完毕后执行JS代码

$("#img").load(function(){...}); 这是jquery提供的一个方法,但是在IE中会有BUG,IE8不支持,IE9以上刷新后也不会执行,只有强制刷新才执行,所以不能使用这个jquery提供的方法 应该使用: 只能通过JS的onload来触发事件,当然触发的事件代码中可以使用jquery代码(但是,IE8也有BUG,普通刷新的时候图片从缓存读入,读入速度比代码更快,导致onload代码不能运行,解决方法看继续往下看) document.getElementBy

Lua 学习笔记(七)编译、执行外部代码块

Lua称为解释型语言的原因:Lua允许在运行源代码之前,先将源代码预编译为一种中间形式.区别解释型语言的主要特征是在于编译器是否是语言运行时库的一部分,即有能力执行动态生成的代码.因为Lua中有dofile函数,才可以将Lua成为一种解释型的语言. 运行Lua代码块有三种形式: 1.dofile 直接编译运行Lua外部代码块,并不返回任何结果. 2.loadfile 编译Lua外部代码块,但不会运行代码,将会以函数的形式返回编译结果. 3.loadstring 编译字符串中的代码,而非从文件读取

使用Java执行python代码并得到结果

由于一些功能用python代码实现会更加方便(python有那么多实用的库真的香),所以可以用python实现部分代码并通过javaWeb来调用执行. python代码文件 test.py import time for i in xrange(1,10): print("process: " + str(i)) time.sleep(2) print("Finish.........") 加入time.sleep(2)让python的输出有停顿间隔性.主要是为了验

main函数执行前、后再执行的代码

一.main结束 不代表整个进程结束  (1)全局对象的构造函数会在main 函数之前执行,          全局对象的析构函数会在main函数之后执行:          用atexit注册的函数也会在main之后执行.  (2)一些全局变量.全局对象和静态变量.对象的空间分配和赋初值就是在执行main函数之前,而main函数执行完后,还要去执行一些诸如释放空间.释放资源使用权等操作  (3)进程启动后,要执行一些初始化代码(如设置环境变量等),然后跳转到main执行.全局对象的构造也在ma

iOS中UIWebView执行JS代码(UIWebView)

iOS中UIWebView执行JS代码(UIWebView) 有时候iOS开发过程中使用 UIWebView 经常需要加载网页,但是网页中有很多明显的标记让人一眼就能看出来是加载的网页,而我们又不想被人卡出来. 如网页中的这个导航 通常我们不需要WebView中的 导航栏,也不需要里面的返回上一级的交互.. 对WebView常用的另外一种功能就是对某个点击添加对用function实现JS调用OC的交互功能. 下面一一介绍: 1. UIWebView 调用JS代码 OC调用JS通常是,在webVi