QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2635|回复: 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) ) W1 F; r0 {- ^& e  ^1 {* F
    {
    5 R* M* D8 H4 j' Q4 A0 V7 [* g* C3 O: Wchar *string;
    8 N4 i9 A  H" s3 F" m5 Sint i,j,k; / w* ^2 D6 l8 Q7 r
    char ch;
    0 K7 z& s3 M) Y& I$ n0 w" Dbool flag=false;   w0 t4 f" G0 k% X/ Q
    2 L6 |$ T$ r# y3 b) |$ u3 S
    k=Edit1-&gt;Text.Length(); 5 P; o) D& ]( P" P6 m7 y/ e
    string=new char[k+1];
    7 g# I# a! |0 ^+ R, Lstrcpy(string,Edit1-&gt;Text.c_str());
    ) M9 G. L" _. G% N+ [* Zfor(i=0;i&lt;k;i++) ! V" M5 I: W7 V- N8 k
    {   r8 U, N! X+ G" I, B4 ~  S
    ch=string; / n* N5 ?8 c' ~' t! f7 {, x& K
    if(!(ch&gt;='0' &amp;&amp; ch&lt;='9' || ch=='.')) / l& U# t* R$ S! E& P
    { ' y9 f3 w2 C& w! V6 K# X+ B7 Q8 R
    for(j=i;j&lt;k;j++)
    0 I$ w$ ^$ D1 U6 t& Z9 ?string[j]=string[j+1]; ( W6 g& m$ U& W
    k--;
    * }9 C  S2 {9 Q( e2 n7 \) Lflag=true; * l9 ]) p: }  g0 G/ c
    }
    5 X% z& @3 G5 K( y+ i. B1 P8 I! ]} 0 [1 \+ {. c  k: ^4 e* O, V" U( ^. V5 _
    if(flag)
    " R; y% Y2 v4 K6 T  pEdit1-&gt;Text=AnsiString(string);
    * ]: a/ V. `3 N( E5 P4 K# Xdelete[] string;
    ; {6 w& R! H7 N% [/ L- H% E//GlobalText=Edit1-&gt;Text; 3 w8 x* L( u( ]$ n( p& G
    }
    . o  e- h; Z$ ?4 [: Z0 M4 c3 j//---------------------------------------------------------------------------
    ' `" k9 }8 K8 ^/ ?: V& C9 O*************************************************************************************************</P>/ K! f$ y  `8 t2 P7 |& |; G+ ~) {( L
    <>void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &amp;Key) 3 B- f3 m  `# H! C8 b
    {
    / o6 J3 T  i6 C$ p: b    if(!(Key&gt;='0' &amp;&amp; Key&lt;='9' || Key=='.' || Key=='\b')) 5 f; d  V! d5 P: \4 T9 T
            Key=0;
    3 {: `' o  v# ?- M}
    8 C/ ?! t% c! e6 H4 {' O//--------------------------------------------------------------------------- </P>$ Y1 I2 ?; R( l" s' N: L/ w
    <>*************************************************************************************************</P>
    8 c7 P2 v5 G( I) u! E. w+ y2 D$ m<>void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &amp;Key)
    " {3 o; `1 z! @$ k. e8 N{ 5 a. U+ e$ g: r0 z+ f' S8 ?
    switch(Key) - S' U1 a. H8 e6 H
    { ' ]& d, H6 Z6 S8 F* r
    case '0': //接受数字键0~9的输入
    , @: ^: _7 x  Y2 Z  n, Kcase '1': 4 x5 B) x# Z( G0 T$ Z7 e
    case '2':   ]$ n0 n  C6 _
    case '3':
    ! W; p. f7 Q' i6 v% P# }- hcase '4':
    " G9 c+ t& d6 @case '5':
    8 S) p( h0 U8 ]0 Q4 B3 d5 Lcase '6':
    : z& E; a5 R( v8 W( ~$ Lcase '7': : H& G! ~# y6 m$ x
    case '8':
    6 k6 d. g. `$ l" ]; J; Fcase '9': * y9 U0 w/ }* U3 f
    case 8: //这是一个BackSpace键,不能禁止,否则不能实现删除功能了
    # C' @* x/ B7 J) h. E8 E! t9 Q) F. H8 ^break;
    . n9 d* I! a0 s0 h( }# qcase '.': //检查是否已存在小数点
    : ^! g7 a3 L8 |) U' O4 bif(DotInStr(Edit1-&gt;Text)) 0 ~3 {: ?* J* w
    Key=0; " ?; X% p; B4 g$ w' s
    break; + g, W" S5 \4 _. f3 C
    case '+': //检查是否已存在符号 6 x7 r- l  J: ~2 A: q
    case '-': 6 Q, E  a, W; E, S
    if(SignInStr(Edit1-&gt;Text))
    : `% G' e/ r! {1 J* }4 dKey=0; 4 r$ `% ]* o# |% Z4 E
    break; - K# n* A; }3 f& _; c3 @
    default: //对于其他输入键,置Key=0 ; f4 z& |( q3 R1 s
    Key=0; / M2 n% L; `7 k  _6 S
    break;
    " ]8 y5 b6 w. F7 ]}
    5 g5 D3 j$ O' G9 S} 2 ^! D5 x% I$ l- C& ~
    //--------------------------------------------------------------------------- ! A$ g) ?& p4 X) r$ I
    bool __fastcall TForm1:otInStr(AnsiString ass)
    ( C% Y/ \$ z& Y9 {1 m8 f7 B{
    + F/ n' `8 e; x- Vint ii,ll; 7 F# x6 A$ a' m: }6 ?* O6 C
    ll=ass.Length();
    0 v; R0 f4 Q: z; m% d& Lfor(ii=0;ii&lt;ll;ii++) 2 @$ i) p) r  R
    {
    - v4 b( U5 `2 p: r0 Y0 }! Hif(ass.c_str()[ii]=='.')
      d2 H6 T# g2 A) L2 t{ . U  b( b" _; G( v  G- H# P
    return True; 6 {) d; X8 l6 P; G9 r. Z1 I
    } " L  W; x; a* l9 [; c, Y* d
    }
    0 S' q8 k# m. k4 B+ c1 Y' Zreturn False; 4 b) z) ~. ]2 Z: M
    }
    3 r8 t  v5 @* D7 @//该函数检查字符串前面是否已存在"+、-"符号
    " @  W( t; {2 r$ m# Mbool __fastcall TForm1::SignInStr(AnsiString ass)
    4 Z; B" x2 b/ K- J6 p{
    ' ?# a9 o! w9 ^7 U& Pint ii,ll; 5 `$ o6 Q, U% q. P
    ll=ass.Length(); + r) Z. D$ C$ ?9 O; p( A) ~
    for(ii=0;ii&lt;ll;ii++)
    , [$ {) d2 S- t1 v2 Q4 X% f{
    ( c& a( ~" a8 i' _+ k3 dif((ass.c_str()[ii]=='+')||(ass.c_str()[ii]=='-')) % l& W# Z5 g/ \  ]. ]. y( {
    { 3 ^% u2 {2 ]1 @. _2 ~) u3 j/ |
    return True;   K2 H* l8 h# {! I3 o- q( O
    } ' t, C7 X' O/ p2 o) R
    } 1 f* ?) m5 |1 n& S( ]
    return False; - Z' Q# `7 S) X, G6 ]/ m' M
    }
    - \- t- B. B: N$ y- H</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 05:08 , Processed in 0.386538 second(s), 51 queries .

    回顶部