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;
    -----------
  • 相关阅读:
    VS2010插件及快捷键设置
    在Windows程序中启用console输出-2016.01.04
    使用VAssistX给文件和函数添加注释-2015.12.31
    windows在远程桌面连接中使用命令行参数
    windows网络编程-2015.12.29
    grep使用
    linux程序调试常用命令
    vim使用笔记
    infusion度量金字塔数据解释
    MVc Forms Membership rolemanage 角色权限验证管理
  • 原文地址:https://www.cnblogs.com/CodeGear/p/6881181.html
Copyright © 2011-2022 走看看