zoukankan      html  css  js  c++  java
  • 执行这些代码, 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;
    -----------
  • 相关阅读:
    express中 使用session与cookie
    mongoDB
    原生 js 实现 vue 的某些功能
    linux系统
    nodejs 程序(有的功能和前端js是不一样的)
    内网穿透技术
    webview
    PWA 应用
    计算机 和 互联网 知识
    css 图片 和 文本 的处理
  • 原文地址:https://www.cnblogs.com/CodeGear/p/6881181.html
Copyright © 2011-2022 走看看