QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2680|回复: 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)
    . g' p0 A# I# G# d: }' p{
    $ ]/ w9 W0 L; ^2 y: Cchar *string; : K' V# g! F- X% V- F5 U
    int i,j,k; 2 f) k* A" p0 R) c: V# H3 u
    char ch;
    # c' O$ K1 }+ O: L5 Z  j1 i, Rbool flag=false; 2 r% j" S( w' |

    * Q8 u5 M0 F* W# ^! Ak=Edit1-&gt;Text.Length(); / }3 c' |' [1 |* O+ f6 A) e
    string=new char[k+1];
    2 Y% k2 @$ P+ \/ j/ mstrcpy(string,Edit1-&gt;Text.c_str()); 8 j" x0 X' j: c" a" z
    for(i=0;i&lt;k;i++)
    ; m7 I& m% D9 \, \& P{ ! J) m. H, x8 e( C0 {( ^) g
    ch=string;
    3 l2 L. _0 h7 J8 t- ]if(!(ch&gt;='0' &amp;&amp; ch&lt;='9' || ch=='.'))
    7 Q( }/ U- R5 Y+ }6 ?+ i{
    ; A8 |& R% m5 w% G: [for(j=i;j&lt;k;j++) - C6 n( ]8 T1 ^+ i9 F
    string[j]=string[j+1];
    & E0 d2 v& q8 R' {/ Z7 ?$ T0 pk--; 7 k+ |) S9 |5 i% D+ d
    flag=true; " Z1 o0 r. K5 N6 P5 x9 Z3 i: ~( O7 i
    } # t# B# k" ^% D/ i: B+ {) D
    } " }5 d% a, h; {6 I2 {3 O
    if(flag)
      h" z/ l6 a4 M5 v( d9 EEdit1-&gt;Text=AnsiString(string);
    6 `' O: ?/ o7 j0 Idelete[] string;
    ) ~9 _! `0 n3 x. m- t* N1 F//GlobalText=Edit1-&gt;Text;
    - H& D8 V0 ?  U7 y7 O- E}
    ( H7 R' S) w; X+ W. `# O* k4 g: F//---------------------------------------------------------------------------
    ( W8 Z; w/ s3 w( \7 \*************************************************************************************************</P>
    ( i8 \2 Z9 U0 P. L+ K9 @( ~8 v<>void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &amp;Key) ) C7 J  D% e* V- [
    { ! N$ C" {: v  v& o) U; ^" p
        if(!(Key&gt;='0' &amp;&amp; Key&lt;='9' || Key=='.' || Key=='\b')) ) C# U4 z3 \9 m9 o! Q
            Key=0; 6 o8 e5 K9 B5 n! ]+ B
    } . [  H. \) N3 S9 w$ L' u/ a) `! @
    //--------------------------------------------------------------------------- </P>
    " U. f: Y* h7 }- j! w<>*************************************************************************************************</P>
    $ s2 n8 p) |( U* `<>void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &amp;Key) 3 k* _+ r3 Z* E5 _  t  ~
    {
    " A) Y" G% }. k( Rswitch(Key)
      T0 M- a/ ^/ }{
    0 E& I  t, M5 Gcase '0': //接受数字键0~9的输入
      ^! F) M- m" |* B. @case '1':
    ! E: `( @6 d6 g# s/ `case '2':
    7 m/ C* _( G" f; R& Q5 \2 |9 ^case '3': 0 ~! K$ y7 Q5 N' j5 r
    case '4': 8 a5 H: R) ~- H/ ?& ^9 l$ ~9 V
    case '5':
    5 u+ ]% X9 V- K( f- v5 ^, W! r/ X3 A" m# o8 Wcase '6':
    $ n. ]% K$ i" J) ucase '7': 3 X/ T. Q: V3 _# p- J- [
    case '8': 8 f+ T+ S% b! k
    case '9': ' V" o+ c6 {9 H2 r  d2 k
    case 8: //这是一个BackSpace键,不能禁止,否则不能实现删除功能了 $ [3 K; S# G$ V% a
    break;
    & c% M  r9 X8 L6 z% R& M+ a0 f: H/ P, jcase '.': //检查是否已存在小数点
    1 X4 b* k- t4 F) [" r* H# D" cif(DotInStr(Edit1-&gt;Text))
    7 F2 p0 d' u1 K4 z0 fKey=0; - j8 I) s/ h. l- t/ `8 R
    break; / B  G# Y% k, ^- g0 S# X
    case '+': //检查是否已存在符号 # ~6 z! I# _, W% u; K! B" K, K0 I
    case '-': 7 R) h  `0 u* ~  N- J! x1 E
    if(SignInStr(Edit1-&gt;Text))
    % n. X5 U9 r/ a; U- k+ h7 l% DKey=0;
    ) ^5 s& Z- \6 g4 F5 I) {. w) rbreak; 1 @3 y9 [" e+ ?5 p! L0 C  @- Y
    default: //对于其他输入键,置Key=0
    9 k0 G& |1 ?1 c# Q0 X: N4 k- ~Key=0;
    ' W) J/ `3 J5 lbreak;
    3 m: [) q4 N8 h8 u} . e$ v9 n; l$ Y2 d
    }
    : w) o4 }* \6 U6 O5 n. U//--------------------------------------------------------------------------- # B5 Q: W* l* s% ?, Z
    bool __fastcall TForm1:otInStr(AnsiString ass)
    ( @  Y, ]9 v3 r( c8 G. `{ ! i; V" X) o. b& k3 Z  i9 F
    int ii,ll; 5 f9 T, K9 H7 E
    ll=ass.Length(); * D9 w4 f( D) N6 c4 K4 g7 N- l
    for(ii=0;ii&lt;ll;ii++) 7 G& _6 Q) _6 D9 c
    { . g( q3 }$ i! [- r& [& A
    if(ass.c_str()[ii]=='.') ! F, p, _% e% p7 C9 L1 {, e. {9 d% z
    {
    5 h) ]+ F6 u$ `( N  P' F! {$ f2 D8 dreturn True;
    2 _2 g1 [( q  }! |0 p8 d}
    ) I& c1 |0 \4 e- c& l3 C} 2 c% Z( J/ C$ w, s# u% |
    return False;
    : A5 d: a) \* {; ]6 s}
    ' g0 M4 \( @4 f$ g; @//该函数检查字符串前面是否已存在"+、-"符号 . @) i4 o! e- H7 }$ k3 I) H
    bool __fastcall TForm1::SignInStr(AnsiString ass) ' S& }1 A$ [7 j/ j9 X* [* q0 U% e
    {
    0 z+ a: t: k6 X7 Y+ cint ii,ll;
    6 s5 K1 [3 t# ]+ q/ J4 \ll=ass.Length(); 0 W5 }2 Z- I1 S! z5 e
    for(ii=0;ii&lt;ll;ii++)
    . M8 w9 Z9 N2 o0 R% A" @{ , g% p0 b) g* l; c$ u
    if((ass.c_str()[ii]=='+')||(ass.c_str()[ii]=='-')) : Y& L& x. }/ j, g$ Q0 `4 f
    {
    # O: P5 b. Z- v% t' m) v$ rreturn True; # O: Y! q4 }" k( z- s  \
    } - i; N8 ?0 K( N' h
    }
      O# C4 X" K- jreturn False; - C$ q  ]- M  s; z( i9 I' e
    } # [7 j9 G. L3 W! r6 Q+ C; d# ?0 ?* e
    </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-10-24 04:05 , Processed in 0.989788 second(s), 50 queries .

    回顶部