QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2694|回复: 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) % j9 y( [1 I, n- L3 k9 ^
    { 0 V+ x  z8 P2 X* R) t& z/ |  M
    char *string; 0 N+ h9 B4 X/ i5 `
    int i,j,k;
    & m# L2 j/ c( c( _char ch;
    " T! H8 n/ W  Q% w0 nbool flag=false;
    0 W, `% Q: x" ?( P8 k9 T
    & [0 K- c; U% r8 lk=Edit1-&gt;Text.Length();
    5 |/ b' g5 ?, Astring=new char[k+1];
    6 s* p# j. r! estrcpy(string,Edit1-&gt;Text.c_str());
    , N' K# e/ `. ]for(i=0;i&lt;k;i++) ! X( U# u6 `9 ~
    {
    2 b/ d0 C9 Z( x5 xch=string;
    $ v& I( t! h" h* C6 m7 a) Wif(!(ch&gt;='0' &amp;&amp; ch&lt;='9' || ch=='.'))
    / y% H8 u3 O  l! Y- O{ 2 |& X# j1 z1 f9 ^
    for(j=i;j&lt;k;j++)
    # n1 X& z) F! a* ?" Ustring[j]=string[j+1];
    8 D8 d* g+ o  R" F9 {4 K' i' b9 ~k--; 1 W% `+ X6 K" Y% D9 K$ U
    flag=true; * ^) {' ~7 ]+ ?6 k/ h$ h
    }
    & f. `) H; f5 D7 w7 w}
    7 j: ?* }& {# s1 [: Vif(flag)
    : N% _4 s8 `( T" n; A. DEdit1-&gt;Text=AnsiString(string);
    9 M/ V% e# }* G6 k& wdelete[] string;
    7 k( Z5 i/ Q6 a+ t//GlobalText=Edit1-&gt;Text; 3 G2 F1 j6 R3 f- E3 }5 X
    } - N/ J' w) r& z- J* w
    //---------------------------------------------------------------------------# x: ]- g3 Y5 w" |* ]# z
    *************************************************************************************************</P>& J( s* H- x1 R7 Y# G: D2 t1 ]7 `
    <>void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &amp;Key)
    " i3 q4 I; g' k# i) V{ 9 B! Z. U6 b1 w. e( U
        if(!(Key&gt;='0' &amp;&amp; Key&lt;='9' || Key=='.' || Key=='\b'))
    : l+ a2 b) o: v9 l& e3 c        Key=0; % T( o+ ?, [! Z& J! @4 ?+ m# ~2 P/ G( Q# C
    } 9 T$ u$ ~0 N: e5 ~( M& l7 h
    //--------------------------------------------------------------------------- </P>9 S& \$ ^* S: B; A) k* o# _
    <>*************************************************************************************************</P>; p7 a& ?- C" y1 _+ G9 ~
    <>void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &amp;Key) 3 l% _' ~' a( C8 m
    { ( j: ~  Z0 v0 F4 n! J" Q! x; v4 y1 f
    switch(Key)
    8 o$ e4 u: B" G  [* s# U{ ) v5 Q5 s6 R3 c& `* X
    case '0': //接受数字键0~9的输入 # G2 E* w* Y# [7 P+ }( O  }
    case '1': 3 n0 F' G& {6 A. D0 J
    case '2': + D. i3 ^: q0 t# p
    case '3':
    % ~2 p" d7 U4 u- J; h! Scase '4': 3 o1 T- ?' n& ?" F1 p8 X$ D
    case '5':   G8 n% X% u' c1 b3 o8 U
    case '6':
    1 b' A& Q6 A- O* t* Icase '7':
    - |& V* |: k. j$ p4 xcase '8':
    ; x6 J; M! C3 ~( C4 k6 K" }9 rcase '9': / ~1 r. T0 h0 f
    case 8: //这是一个BackSpace键,不能禁止,否则不能实现删除功能了 2 e( j0 ]1 h5 L  O
    break; 0 W& D" o& B) F; ~
    case '.': //检查是否已存在小数点
    1 U; s, x, j- [6 M' X. f& B8 s+ K! Z& Tif(DotInStr(Edit1-&gt;Text)) 2 b8 o5 B: H% D2 `% z
    Key=0;
    + N# u' h4 A3 w: Kbreak; 8 \8 O5 o) ~8 ^" _, `( G
    case '+': //检查是否已存在符号 & Y0 b9 o/ m2 c) q: @* Q# k: f
    case '-': & ~; M3 m8 ]* p+ l$ a) q6 }
    if(SignInStr(Edit1-&gt;Text))
    " h5 B! E' b3 O, D# \3 }& ~Key=0;
    1 h) @% L3 D2 Abreak;
    $ v  t* N6 P! {" `; n& jdefault: //对于其他输入键,置Key=0
    & _2 n) A9 d* g$ L; K2 Y6 P1 ~0 WKey=0; . A( R& ^' m5 X3 a7 p' ?/ w
    break;
    3 Z; `! s" q! u2 c8 l} 8 ?. M6 b5 H% H7 p! r* r4 v
    }
    2 G0 l* Z& N' g. C) k//--------------------------------------------------------------------------- / y7 D$ C% l7 K
    bool __fastcall TForm1:otInStr(AnsiString ass) 7 X: K2 f9 a6 o# P
    { ! k- k) d% B& o( c9 m7 C
    int ii,ll;
    5 d9 q1 D1 Q8 j5 Ell=ass.Length();
    2 R1 p* i3 A) X- ?7 `for(ii=0;ii&lt;ll;ii++) + f! G, K# {3 \" _& \
    { $ N% J  b2 Q7 t6 H8 g2 a
    if(ass.c_str()[ii]=='.') 6 g' y4 a6 ~1 y4 [
    { 2 O) ^$ g! q1 |' |/ Q  {
    return True; ) T, h/ Z- }- p# H5 @, |" ^
    }
    * J) ^  `; H1 Q8 v7 V+ [}
    8 {4 l2 L8 \( K4 T9 rreturn False;
    ; \# l; P, H' Q+ @+ f6 p/ s}
    6 Q6 R% r  Z# [3 @" S! A//该函数检查字符串前面是否已存在"+、-"符号
    9 _8 |- V- y: C8 bbool __fastcall TForm1::SignInStr(AnsiString ass)
    - [9 Z2 j0 h( @{
    - Q# P" y7 g9 D/ I# E/ ^3 Gint ii,ll;
    - s" `5 A! E8 e# b% A1 v3 [ll=ass.Length();
    # B2 [" o0 U) o: R$ y# Z9 ifor(ii=0;ii&lt;ll;ii++)
    5 A" `1 w8 U' `  _) j{ - |5 w& E) f; v8 o5 Q2 S8 }. ^# Y
    if((ass.c_str()[ii]=='+')||(ass.c_str()[ii]=='-'))
    - H7 l+ d3 a& T% j9 o* n$ Y{ 7 y5 Y* Z3 J' W7 q5 d* [
    return True; 1 B7 r$ G" q1 I8 Z! U. Y8 I& h
    }
    8 J, K, k5 m/ l9 @3 M6 N1 ~, |! |7 n}
    5 b0 [3 P5 {1 s. H. Nreturn False; 0 L& ?5 y* ^( w6 \/ R. G" C
    }
    2 r$ V, p, T% U- d% L</P>
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    您需要登录后才可以回帖 登录 | 注册地址

    fastpost qq
    收缩
    • 电话咨询

    • 04714969085

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-10-31 17:38 , Processed in 0.124338 second(s), 50 queries .

    回顶部