QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2623|回复: 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) . U5 ~8 c; k1 @8 J; Y" r4 i
    { % i. q" g& ]% s0 Y3 P$ _& r
    char *string;
    " O* k- W# E  j5 y% M6 iint i,j,k; ' B; }6 v4 \, n/ }. v- ?
    char ch;
    : v% F" w/ a+ {  x( I: t0 B) J/ xbool flag=false;
    ; K, k1 g8 \0 A( g2 }: }8 s
    , N7 s0 S; K* R1 V$ uk=Edit1-&gt;Text.Length(); 4 H7 T. V& ^- e, h2 }9 m
    string=new char[k+1]; $ l7 w* X. t' S. o9 ], J
    strcpy(string,Edit1-&gt;Text.c_str()); ! k0 O: m8 F9 ?! O5 D$ ^$ H
    for(i=0;i&lt;k;i++) / d: J% c  }) W( \
    {
    $ E% I* a6 C+ {ch=string; 8 P' t6 x$ t" Q- x
    if(!(ch&gt;='0' &amp;&amp; ch&lt;='9' || ch=='.')) " B8 V6 t, _' E" l$ b+ K
    {
    8 m( z9 F4 T& D5 M/ V3 A9 _for(j=i;j&lt;k;j++)
    9 Z  ]# S$ D9 {2 @, I$ tstring[j]=string[j+1];
    1 A0 R6 {! ]3 z1 yk--; - i6 x, Y) o& V- B1 `: F
    flag=true; 9 T5 R3 w$ G4 J+ \% ^# V, [6 H
    } 8 r$ j% n$ }5 j  |- _) H# M
    } - D! H& k& m+ J. i  G! q
    if(flag)
    ! i+ c/ b; M5 iEdit1-&gt;Text=AnsiString(string);
    % N" w. h' @9 `: p' S+ y; rdelete[] string; # ~. ^  e% z1 s! t( f, ?$ J
    //GlobalText=Edit1-&gt;Text;
    . u3 }4 b# J5 B$ a}
    & `4 v: P" ?+ h( C" R1 {( r//---------------------------------------------------------------------------
    / M. y2 Y$ D$ ^# F*************************************************************************************************</P>
    + l; ^! T$ p5 t6 b<>void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &amp;Key)
    ( V; w6 S! d9 D' r5 F# O. u& G{ - q6 z  {$ y+ K. t6 X9 ^
        if(!(Key&gt;='0' &amp;&amp; Key&lt;='9' || Key=='.' || Key=='\b'))
    ( l2 P7 ~* M+ `2 I! Z' j        Key=0; 1 \5 |( e' J5 g
    }
    8 w' h  U* Q5 V5 E2 w//--------------------------------------------------------------------------- </P>
    1 o( r; P. D2 q5 _. B; g<>*************************************************************************************************</P>
    ; K  g& B8 e2 C0 K1 |<>void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &amp;Key)
    , h+ e- E  H  n6 ^{ , q9 D- x9 `/ I# P- s6 h0 p& p
    switch(Key)
    + O: U. c+ C! X6 ]! |( ]7 }{
    ' p- O) ~5 b- jcase '0': //接受数字键0~9的输入 : G  c: \0 s2 i! b
    case '1':
    9 E1 ^/ R# r" g: H( Xcase '2':
    ' q; f2 T5 Q+ `, U+ Scase '3': % w5 S$ B/ P- R) y4 {: w/ b
    case '4': ) s3 m  P( F) G0 D4 m0 V7 X# m
    case '5':
    - M5 B$ ]$ ~# s) K. u1 Zcase '6': 6 v2 m) D! ?4 X
    case '7':
    % ]4 S3 J! U; j) M* D7 D( zcase '8': ) D1 f0 K0 }7 M
    case '9': ' a4 T! X# D/ k/ p& O4 V/ b8 o
    case 8: //这是一个BackSpace键,不能禁止,否则不能实现删除功能了   N: n7 M- J  E
    break;
    ( v7 j2 j3 ~" l4 }case '.': //检查是否已存在小数点
    ; Q7 I% J- L& Bif(DotInStr(Edit1-&gt;Text))
    9 s7 P. P/ d( I; h3 RKey=0;
    7 K% }, j% O' P1 i; W( \1 b* gbreak;
    ( A( ?  b. X0 p. [case '+': //检查是否已存在符号 : ?% G; V, B8 H1 e) Z
    case '-':
    2 }/ m7 B/ ^8 @2 Q% oif(SignInStr(Edit1-&gt;Text))
    & d& j) S7 t6 \5 s7 n8 |% gKey=0; 4 T1 T/ c7 E3 B* P1 c
    break;
    " }8 a- m% m0 g# A8 P0 W/ Ndefault: //对于其他输入键,置Key=0 6 ?: G" N4 I5 S4 }
    Key=0;
      b! \) d* M' `/ a) f5 ybreak;
    - u. t% J# f+ T2 I2 v% A( i" I} 1 j1 z( K* H. V5 M) A
    }
    ) ?- [; S, P; B2 E- Z//--------------------------------------------------------------------------- ) z+ r) _2 v3 A% u1 ^
    bool __fastcall TForm1:otInStr(AnsiString ass)
    & L  c# c# W8 ~( \2 b2 {! k; }{
    5 t+ x1 ~6 L- e/ X5 u# xint ii,ll;
    % R$ m' ]2 u/ t, p- Kll=ass.Length();
    * ?5 s5 o# d+ J* Rfor(ii=0;ii&lt;ll;ii++)
    / c% {; u- c7 J& v" s: V* G: W{ 7 n( {# V% Q$ b
    if(ass.c_str()[ii]=='.')
      Y4 R; e1 N2 Q( l" k{ % @7 H( h+ t4 `9 j
    return True; * i$ F1 ^' f( r3 Z
    } , x! \# c9 L7 j& \1 A( i
    }
    # r+ k7 V. C; \return False;
    % ?/ s! a2 u. h& b} 4 f9 f: [' a8 f
    //该函数检查字符串前面是否已存在"+、-"符号
    ; j: {3 O6 a, x, s& B; w1 K6 |4 ~% tbool __fastcall TForm1::SignInStr(AnsiString ass)
    7 B9 z. w0 @# h  o. t{
    % n! r% g' j, A% B7 \int ii,ll; 8 b1 {: O/ o: t8 V! s
    ll=ass.Length();
    0 F/ i3 C- ^2 K& y- m( ^8 ^5 s, vfor(ii=0;ii&lt;ll;ii++)
    ( X% c9 B; z) p8 e{ " ]8 A( I2 b3 H6 ~
    if((ass.c_str()[ii]=='+')||(ass.c_str()[ii]=='-')) 8 G: v- Z/ q+ ], N/ T1 O
    { ( M/ U6 a0 x2 h7 ~6 J9 s
    return True;
    # e9 S; a7 _: ]}
    : k- _! ]2 m5 ?# G' m. p2 G}
    3 L% t) P) j" \& w& N/ j+ L; H2 u3 S9 Yreturn False;
    / Z# E" \  V! A/ N} $ d4 q7 ?( N1 H/ X3 x, A4 G* ?+ Y2 @
    </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-6-14 15:11 , Processed in 0.457476 second(s), 51 queries .

    回顶部