QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2616|回复: 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)
    4 W$ c( _/ e, p8 A' D- Z& u{
    : n$ B: q( {" ^+ k5 e3 Y4 {2 gchar *string;
    7 E9 f9 s6 {9 e- {* r+ R  J+ J( uint i,j,k; 7 a; ^  Q, R* i
    char ch;
    + ~+ q  _6 L$ g& x# m% f8 sbool flag=false;
      k" |9 s4 V( S7 W: ?; O# X0 n0 q# U: F2 ?# u
    k=Edit1-&gt;Text.Length(); 9 U$ R' {, v: h: R- C
    string=new char[k+1]; 3 j; ~0 x$ G! g# y& h
    strcpy(string,Edit1-&gt;Text.c_str());
    $ c2 r+ F$ s7 V& ufor(i=0;i&lt;k;i++)
    2 H9 \. @- m. [, _{
    % Y! U# E3 L9 g: `3 nch=string;
    6 C+ J% G# h- N' Eif(!(ch&gt;='0' &amp;&amp; ch&lt;='9' || ch=='.')) 3 T2 R# J3 g$ C7 V
    {
    $ H2 ]1 u) u$ i1 F/ efor(j=i;j&lt;k;j++)
    5 M1 M: T9 a7 ?, {" k+ _1 K) Astring[j]=string[j+1];
    $ C6 b8 S/ k7 ]3 ok--;
    # P% g% t6 A9 l, p4 \6 l0 _flag=true;
    " `* q& l, R& l4 K5 M) |% ^} 9 h" J* ?! ?3 \) ^+ x0 S
    } # w5 K3 V( E- S* k! }
    if(flag) * g! k: n5 T: C
    Edit1-&gt;Text=AnsiString(string);
    6 a) e* W+ f% J9 N- }; n7 x; rdelete[] string;
    ! B1 I/ s2 h: m8 l2 E* j//GlobalText=Edit1-&gt;Text;
    6 W! O5 |6 i( O8 z) M1 c} ) u  d9 w8 Y6 g* \6 B/ L7 }3 L
    //---------------------------------------------------------------------------
    ; M: z2 Q0 |  C7 q" L% M*************************************************************************************************</P>9 o. ^/ X3 G" ?% J
    <>void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &amp;Key)
    & L# @' P' n% m" h( B2 p4 b{ ! l' V1 c; y  e6 R$ {
        if(!(Key&gt;='0' &amp;&amp; Key&lt;='9' || Key=='.' || Key=='\b')) ' L- @  w$ A# O
            Key=0; ! O9 ?+ S5 b% j+ i& Y% R
    } 1 N* U. R  [' e- b9 i' t
    //--------------------------------------------------------------------------- </P>
    ; q) K& N0 d) C<>*************************************************************************************************</P>
    ) |: n3 Y; K( [+ O/ H6 T7 s<>void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &amp;Key) 5 u, y; Q# N# w1 ?- k
    {
    6 H8 Q6 X4 p& E2 l2 Oswitch(Key) & B( g# ~" F* t- _/ B' e3 I2 ^
    {
    ; l! L: Q3 K+ @9 k, a* Acase '0': //接受数字键0~9的输入
    ! T; l2 z' f$ d) u3 \case '1':
    1 q# h6 ?0 D0 L! ucase '2': 9 m. g! L5 `/ Z
    case '3': 7 s% ~8 o- Y! |( C/ T  r6 k/ M
    case '4':
    ' Y: R; Z5 X9 R3 Q9 A, w$ lcase '5':
    , _5 l4 w3 z. G; _$ G4 X$ }, A- P5 Kcase '6': % M$ q3 q" V2 ~* V( s
    case '7': % D3 c' G  d# D  I3 F+ e
    case '8':
    + b5 }# x0 o: X/ B* wcase '9':
    3 @2 j6 J2 F: v& k' q, vcase 8: //这是一个BackSpace键,不能禁止,否则不能实现删除功能了 7 @# {9 n( ^; F) ~5 J
    break; ! i5 i  m4 f+ o: b! n
    case '.': //检查是否已存在小数点 * P# b( t' R  q
    if(DotInStr(Edit1-&gt;Text))
    ) n/ n7 p( ~7 ~* Z, j) _Key=0; 4 b2 b7 O$ e. M" [5 }, @
    break;
    3 G/ a4 n/ |3 u; ]4 fcase '+': //检查是否已存在符号 # {5 R# n' K( ^5 [* }
    case '-':
    $ Y$ i- S  \4 _8 G! x5 v: Tif(SignInStr(Edit1-&gt;Text))
    3 {" Y% L' N, G2 q; t# C+ |. c" qKey=0;
    * M% y8 d. k; G: O1 y2 w" cbreak;
    2 w. \) p5 ^: a- ~default: //对于其他输入键,置Key=0   ^6 Z6 f% u( [
    Key=0; 8 O4 T' l2 s0 F5 l; l! W. Q2 Q
    break;
    ! l9 t. c6 ~9 Z/ H- \& V2 ^}
    % H- `+ |( o+ W% \& w+ W' O3 S} 9 p* s9 e6 @  t2 m* x5 E
    //--------------------------------------------------------------------------- & O* I+ C' S" A+ s
    bool __fastcall TForm1:otInStr(AnsiString ass)
    ' l6 y, S! C' n7 i{ / n3 p- d! u( _+ d: e8 b+ W
    int ii,ll; 6 j! m! R/ }3 |& d
    ll=ass.Length(); , g9 O9 h+ V+ o/ y
    for(ii=0;ii&lt;ll;ii++) ; u1 D, A2 W; U9 k% y1 V
    {
    * [0 x, ^6 j$ |* P5 x$ `if(ass.c_str()[ii]=='.')
    8 G1 H* j) v3 X; ]; Q6 e{ 6 u, Z2 f2 E9 F1 @
    return True; $ D( Y  Y- B& B8 d
    }
    , d8 A2 V  p$ q# S. B. E4 C7 h  `3 ^} " F8 A4 ?; W: y! J* _- Q
    return False; / {  U0 L" V8 u. G' M0 I
    }
    4 ^" s% E! z: I$ |  j//该函数检查字符串前面是否已存在"+、-"符号
    9 y% _( e' k( ?bool __fastcall TForm1::SignInStr(AnsiString ass)
    ( F; ?  Y5 q2 D6 \" H% e: T) S{ 6 F1 _6 T; |: X  |* b
    int ii,ll; : \% P- b$ U" a  @2 U
    ll=ass.Length();
      u2 q3 O! ]8 qfor(ii=0;ii&lt;ll;ii++) 0 f" Z; u1 g& t$ ]9 X, j
    {
    - U. H7 z+ A0 K  sif((ass.c_str()[ii]=='+')||(ass.c_str()[ii]=='-')) % j7 r6 k  v/ l! V& e/ I# j: m
    { # ], k- A6 p9 H
    return True; * r- `& G* ~7 O
    }
    + y7 l( f2 G$ c2 ~) e+ s* R, V}
    $ e0 Z8 Y5 W8 `- S! G8 _return False; ! F* t; [* c5 {" d
    } , [8 W# o( S! k
    </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-11 12:15 , Processed in 0.360454 second(s), 51 queries .

    回顶部