QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2634|回复: 0
打印 上一主题 下一主题

使Edit控件只能输入数字!

[复制链接]
字体大小: 正常 放大
ilikenba 实名认证       

1万

主题

49

听众

2万

积分

  • TA的每日心情
    奋斗
    2024-6-23 05:14
  • 签到天数: 1043 天

    [LV.10]以坛为家III

    社区QQ达人 新人进步奖 优秀斑竹奖 发帖功臣

    群组万里江山

    群组sas讨论小组

    群组长盛证券理财有限公司

    群组C 语言讨论组

    群组Matlab讨论组

    跳转到指定楼层
    1#
    发表于 2004-7-10 15:46 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    <>void __fastcall TForm1::Edit1Change(TObject *Sender) 1 I+ b# {( F) U8 k
    {
    $ y; F: P& N0 P  qchar *string;
    + X# k; v9 G" aint i,j,k; $ G+ ]' j6 p. {2 e1 h" v, t8 x/ v  u
    char ch; 7 x( k' T4 k  I, e. J( B
    bool flag=false; 7 I; ]# P* t0 }5 k, x; n6 n

    * N: @- L6 C; V& @) ak=Edit1-&gt;Text.Length(); , }) p- M2 y3 _2 j
    string=new char[k+1];
    ' F) ~3 U" V7 Sstrcpy(string,Edit1-&gt;Text.c_str());
    1 [' w" w; r% q" @1 H& \3 ]# Gfor(i=0;i&lt;k;i++) $ x& Y5 `$ n1 m( i( N& y3 R  q
    {
    7 ?3 c0 i5 ]. Vch=string; 4 j6 T" Y! `$ u! v+ o7 R) E! \# N" F
    if(!(ch&gt;='0' &amp;&amp; ch&lt;='9' || ch=='.')) 3 W* E, h1 \; {$ `+ f
    { ' ~, R$ o2 w9 d* J: h
    for(j=i;j&lt;k;j++) / H" {* V0 U$ g# l* m( O* _
    string[j]=string[j+1];
    ( }/ i  r5 Z1 R' uk--; $ }9 h; V1 \! C& e" H+ o: R& d+ g
    flag=true;
    * m1 g5 y! u" v- Z# P} ' H9 [6 Z" @0 f. e
    } ; _; `  q. d. R" e$ i
    if(flag) $ R3 w1 b4 S# G5 F) I; ]
    Edit1-&gt;Text=AnsiString(string); % E$ |! F% q$ L6 \( U9 D2 w9 Y( `
    delete[] string;
    ! n/ v) D% P& H. ^  }//GlobalText=Edit1-&gt;Text; ) Z7 J% I2 ^. B) K% s' M
    }
    . c* D) a+ R- l% C% E# E//---------------------------------------------------------------------------, m# Z: ]" e4 c" _
    *************************************************************************************************</P>7 i* Q* [1 t* Q* M( U% N
    <>void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &amp;Key)
    ! {9 j5 a% A7 O% L# i- \{
    5 Y  s5 M, M/ X4 R6 Y    if(!(Key&gt;='0' &amp;&amp; Key&lt;='9' || Key=='.' || Key=='\b'))
    ! e% H/ U0 g+ s. W        Key=0;
    9 g7 S" n  G1 i' w/ s} + F0 N  K$ Q* }
    //--------------------------------------------------------------------------- </P>
    ) C9 r( H* _2 Y6 X7 G<>*************************************************************************************************</P>3 i# g; ^5 `8 D
    <>void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &amp;Key) ; U& e% f# d: w) P6 _/ B, ?7 @
    {
      D8 d" V6 _6 \& Fswitch(Key)
    ! I( l5 y4 I; ^7 D3 J{ # x8 a9 K+ ?) P6 r- f! }& u8 L
    case '0': //接受数字键0~9的输入
    5 M) o2 g+ z( W4 g$ Jcase '1':
      ?. k5 {3 O7 a7 I( |case '2': - W$ X0 j: ]( l9 A
    case '3':
    ( E' e( Q# d. v+ Q* c, U. \% R( ^case '4':
    % T) h2 f) @2 g- b+ i# n0 Ycase '5': ( d1 u( M- c; Q0 F
    case '6':   H) R- M6 E# Z1 @
    case '7':
    % ?' D) m# E6 rcase '8': $ K  r8 m# X9 g+ k# U% }# f
    case '9':
    0 k6 s# l  `3 h  o, Rcase 8: //这是一个BackSpace键,不能禁止,否则不能实现删除功能了
    # D3 e" e. B6 l8 v8 T: d. ibreak; 6 _) m  g" w# S1 E! y4 _
    case '.': //检查是否已存在小数点 ; a4 y7 o; B  Y; F
    if(DotInStr(Edit1-&gt;Text)) 4 d1 D1 M8 d8 W/ O' Z
    Key=0;
    ! C7 _! K5 I3 k0 \" d) i9 ~break;
    : P" x& r3 P6 Ocase '+': //检查是否已存在符号
    " z8 O6 e( Z" R+ {/ N8 c- Zcase '-':
    4 H: Q% ^' J6 }! d( ?if(SignInStr(Edit1-&gt;Text)) 9 C3 r+ D& u0 D/ f
    Key=0; 3 T  T' s+ c% F# s# I. O- M* @
    break;   M0 e" o6 L2 ^$ |
    default: //对于其他输入键,置Key=0 : Z+ N- ^+ R' _4 @1 E
    Key=0; - v3 S% B+ D% ^9 ^- G8 }5 u% }
    break;
    $ h- f0 ~9 g% H( V0 g8 k8 @7 G}
    # N, m9 k7 d: v0 {# r3 \5 n}
    $ f: X( p1 T$ s+ B& H) _//---------------------------------------------------------------------------
    ; @5 l  Q7 N- I, j3 n4 j7 vbool __fastcall TForm1:otInStr(AnsiString ass) ( k( J( f) |+ {8 c8 S
    {
    ! ]/ z5 f" A$ M6 ^- I7 Gint ii,ll;
    7 R/ C% @- T! l- M, \( T( qll=ass.Length(); 3 s( B1 k1 P( P, |8 o" C& q
    for(ii=0;ii&lt;ll;ii++) 1 Z% d; p& Y3 |/ m' b
    { 1 W* P7 \( y& B& b; w
    if(ass.c_str()[ii]=='.')
    ! `* W, J- g6 ~  O- s/ Z{ 3 @5 }! M* E: D1 ?
    return True; + L0 s3 R3 O. F& O* ^* h
    } 9 w. l3 T  m/ y$ g' d/ c
    }
    3 Q( o1 D" k7 x4 R$ K9 t- areturn False; , p. F$ H8 N3 O- K2 O! W3 g3 r
    } - s( w6 ]0 Q. L4 J! C
    //该函数检查字符串前面是否已存在"+、-"符号 $ U9 J# K  r5 w0 `' {
    bool __fastcall TForm1::SignInStr(AnsiString ass) : t1 w6 J8 k. s+ y+ d: d+ _# Z4 L
    { 4 Q) D) b% s) e$ @: M& G3 s
    int ii,ll;
    $ F/ m1 J* H: I* e% g# r% C* Ill=ass.Length();
    # a3 y9 @; Y# X3 V' Rfor(ii=0;ii&lt;ll;ii++)
    " y3 f; {; i# i- z; S{ # @6 O2 p" I0 R7 K
    if((ass.c_str()[ii]=='+')||(ass.c_str()[ii]=='-'))
    3 i  u& s/ I3 e$ I& S{ ) I$ g5 o- \& N, V! C( b
    return True;
    : \2 L2 M& l0 {* j# c}
    & k& j1 S8 B- K0 h} ! t5 s% B8 |  E# V1 a
    return False;
      ]% g  ?1 F( @} + D* ]4 A: b" x& Z
    </P>
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2026-7-21 01:38 , Processed in 0.303512 second(s), 50 queries .

    回顶部