QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2601|回复: 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)
    2 \( d% I& O- o$ f/ I" G{
    9 p8 f3 J! m7 R: I" f, F$ gchar *string; : w" [( u; A  K/ P3 p# F0 u- _
    int i,j,k;
    3 b: e2 A" J  w1 H# P# Uchar ch;
    8 t7 I, ^$ J2 b# L. ibool flag=false;
    " U# ?$ y# g4 W8 t9 `0 z$ ^$ `7 L. r' ~+ s4 @
    k=Edit1-&gt;Text.Length(); * Q0 w( \7 J. v( ]
    string=new char[k+1]; 1 C8 k5 P; m. B' y7 M, j
    strcpy(string,Edit1-&gt;Text.c_str());
    $ ?' v3 ~0 j6 |for(i=0;i&lt;k;i++) ) \' a+ Q2 j9 Z1 D( \( a% |
    {
    ) |& W, S4 U( Y4 d) H+ Uch=string;
    - u: t/ t. Y2 I% L( W: d( x4 q+ Mif(!(ch&gt;='0' &amp;&amp; ch&lt;='9' || ch=='.')) ! b8 @7 R, v$ L1 `' q+ U
    { 2 ~0 B& c' U: u" j) e% _  w
    for(j=i;j&lt;k;j++)
    * V. m  C  {( |! N- |4 Sstring[j]=string[j+1]; 4 ^) p0 u  K6 D4 b0 l
    k--; * b3 Q  ~+ K; O3 S
    flag=true; 6 w6 |' n. k, v- i
    }
      Q$ x1 ~3 x  x7 W: g; D- _* s}
    + K3 x& Q& M- W0 |if(flag)
    * W+ p; A7 b& B0 Y9 xEdit1-&gt;Text=AnsiString(string);
    * g- X  ]6 ^% l+ a$ udelete[] string;
    # e$ k( @4 Q# _! O//GlobalText=Edit1-&gt;Text; & s9 T1 q% b% b
    }
    $ I- J) V" K; x7 l& Y& u//---------------------------------------------------------------------------
    9 S0 l- W) g* k$ L$ C( q*************************************************************************************************</P>
    # \2 a* Q3 n/ r, W<>void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &amp;Key)
    5 `% N8 ~# h) h* M{
    7 p. Z% p3 j: N  N    if(!(Key&gt;='0' &amp;&amp; Key&lt;='9' || Key=='.' || Key=='\b'))
    - K/ b* H# U$ c3 U        Key=0; 0 f( N4 ^4 Y+ R+ ?' }
    }
    . L( Y5 S% f: S//--------------------------------------------------------------------------- </P>- u6 A, s7 c- _4 Z
    <>*************************************************************************************************</P>/ S/ s8 G7 ^) _' w7 _; P! w
    <>void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &amp;Key)
    4 t& D) R2 m* D) D{
    # C9 }, C. n7 V( E' U, _6 p) Zswitch(Key)
    " x" f, M; c, h7 ]7 \{
    " s  L9 P9 W2 ~' Ucase '0': //接受数字键0~9的输入
    : i; B1 x' r! D" e4 w+ k8 V9 c9 scase '1': + x8 Z2 V0 j) _
    case '2': ( g/ s, ^, q2 t' F: r1 A
    case '3': & @1 }3 m+ f" B5 M. S9 V
    case '4':
    ; D/ Z% T/ c9 g3 N+ Kcase '5':
    ( g: j4 {2 m9 _1 S( i6 @case '6':
    , t0 c! N& ^6 |7 q. v8 G& Pcase '7':
    . S, X( i- M- dcase '8': 0 ^5 j' t+ I- T8 g. S
    case '9':
    ( \; m: J# H" n* K8 p) Pcase 8: //这是一个BackSpace键,不能禁止,否则不能实现删除功能了 ( s( Z/ K/ m  a" _9 h+ [6 B
    break; 8 E: r5 U8 p; w1 n. M
    case '.': //检查是否已存在小数点 - ~+ J" C1 \0 X; t8 ]7 n
    if(DotInStr(Edit1-&gt;Text))
    4 ]" ^2 l  X7 C7 HKey=0;
    . h' r2 |6 Z2 ~4 _( K! Y$ Ebreak;
    ) q. Z- M3 H! Vcase '+': //检查是否已存在符号 & r* {/ o8 {0 Q1 D1 D% G" o' L
    case '-': 9 r3 X& u3 f# r: l
    if(SignInStr(Edit1-&gt;Text)) ) u& `. r( X7 D' c% @3 c
    Key=0;
    2 j, I% r0 l/ \8 S/ w9 wbreak;
    0 ?  }" L/ k# O0 v! xdefault: //对于其他输入键,置Key=0 # S/ d  {+ D/ a& \& h
    Key=0; 5 ~* d1 q4 U. ?5 P  c
    break;
    * `# u/ R3 L4 l5 P} & y9 b+ Y; e1 |/ }
    } 5 ?# R1 S$ F  J! E- R  M
    //--------------------------------------------------------------------------- 0 a& p! q, K/ x! u  a! b& E: b& g
    bool __fastcall TForm1:otInStr(AnsiString ass) 4 N) |2 r( |5 [  [
    {
    / y. M7 L8 y* r" Xint ii,ll;
    5 Q5 u  G2 x* O3 R' d2 vll=ass.Length();
    5 m* `6 P$ Q( u+ p) n+ [2 }# jfor(ii=0;ii&lt;ll;ii++)
    ) o" E$ }0 ]& j3 p& M0 I3 h3 t{ 2 k5 \) _% C; L7 }
    if(ass.c_str()[ii]=='.')
    7 z8 k5 m8 t+ M+ ?! ?" @{ 2 I  g9 m2 C% O$ l* q; p
    return True; ) x1 G/ ~' }" m+ B% e0 q; n& h4 A
    } 1 V' w1 |7 G7 j% L0 L# k+ T
    } 6 i# d9 d6 i/ X0 T% C% V
    return False;
    $ Z8 c. z0 b8 j. p. l+ a" z' w}
    : B: J( w8 z/ |//该函数检查字符串前面是否已存在"+、-"符号
    7 t: w8 a' k" F7 _, P& n3 M5 R. V  Xbool __fastcall TForm1::SignInStr(AnsiString ass) % `' T( t' n' t, A- V( }2 A- o# Y7 x9 s
    { # z# R* R& k+ p2 y5 J, e3 a
    int ii,ll;
    : ^  ^9 l3 b! e7 \ll=ass.Length(); 5 ~; E4 ?$ d' @% E9 }! |
    for(ii=0;ii&lt;ll;ii++) " h' C0 e# G$ u: A
    {
    % R6 n; E) o# H) Q5 tif((ass.c_str()[ii]=='+')||(ass.c_str()[ii]=='-'))
    ( B( v4 C" x0 A( n, y/ c0 O{ 0 |! k2 A: Q8 t# e; m
    return True; # I+ a; D2 O8 E, E
    } 5 ~& J9 b) q) @; @* P( L+ }) \
    } / ?% P% C9 B& C3 T, e: }
    return False;
    0 l0 Y4 Q2 f$ X7 U3 N}
    ; t& i& n2 C" Z- G</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-4-20 13:31 , Processed in 0.437940 second(s), 51 queries .

    回顶部