QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2603|回复: 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)
    0 a! t, i: l" I1 D  x4 Z8 a- u{
    * {# ^$ n1 c2 {" ichar *string;
    " _7 T8 A( \0 G% p3 \/ xint i,j,k;
    9 c5 `4 s9 s" m. G4 v/ d4 @char ch;
    * v: y, S8 t5 |& |2 cbool flag=false;
    ! E/ v! p$ r& c+ e. k2 ~" _* Z' m. i5 Z8 p" M5 `, t5 f
    k=Edit1-&gt;Text.Length();
    4 }+ O/ q" L$ F$ \2 B) Jstring=new char[k+1];
    & o& A- A; i) V: Hstrcpy(string,Edit1-&gt;Text.c_str()); 7 q' y' `$ \* P7 b
    for(i=0;i&lt;k;i++) : s4 W5 W2 b9 S! y- L  j- p
    { 1 k) U( z- d: h$ u: a* t1 `. O
    ch=string; 5 Z( _7 R* H' s5 H
    if(!(ch&gt;='0' &amp;&amp; ch&lt;='9' || ch=='.'))
    : o4 D7 M) _9 o) }2 I& t& b{ : L2 B2 C, P. F2 o7 A
    for(j=i;j&lt;k;j++) 6 t2 r" A3 Y) w# B
    string[j]=string[j+1];
    2 s2 W0 F& a3 A+ A4 ik--; 4 F7 Y8 |. I  \$ a/ J4 _/ U
    flag=true; - D" L7 l( Q6 \0 }3 k  t% q; ?
    } ' f- \0 H: c' S, `
    }
    8 N" ^6 [5 V+ E# g1 E% }% _if(flag) 4 p+ E% D& R. _! H
    Edit1-&gt;Text=AnsiString(string);
    ( o0 j+ H  i7 b$ C) }delete[] string;
    / q4 S- a: \5 k8 o8 h+ {//GlobalText=Edit1-&gt;Text;
    6 G# U5 g: Y( f  [6 t5 @7 ?; R}
    4 Z; T2 C0 L& _1 M* q; V//---------------------------------------------------------------------------
    ; K+ p) \6 b  y* b6 Q- g/ }*************************************************************************************************</P>
      D* d) m# w) y* L<>void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &amp;Key) % }0 t) a* G# o- r+ |, F
    {
    " Z2 K9 i. _4 G) k. ?9 ]( g    if(!(Key&gt;='0' &amp;&amp; Key&lt;='9' || Key=='.' || Key=='\b')) + N; E* I3 S0 t, e/ F$ w% e, T
            Key=0;
    3 i% H0 G) T& r* t, ]4 Z}
    1 o! D8 V/ `) n1 e. o2 m: \6 R- h3 U//--------------------------------------------------------------------------- </P>+ \, b6 k* ~) x
    <>*************************************************************************************************</P>
    6 R) k0 l6 t7 e<>void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &amp;Key) - I3 D' L# M8 e; e$ x
    {
    ; G6 e. T* W1 A, gswitch(Key) / |% r  y' Y' n5 L# s
    { / M" H3 X6 h& F4 ]6 z4 j) d" p3 t
    case '0': //接受数字键0~9的输入 7 q4 L& `+ P3 J( F# B  K
    case '1': 1 z3 T+ \7 V* b' l
    case '2':
    # k8 _* ]  n6 h& F- i& Y9 Icase '3':
    3 \2 u4 d- O# P& \6 H+ y1 ?case '4':
    7 w' W4 [; e% |( P$ `$ y) N* _2 p! Ncase '5':
    8 i* |2 e2 N  U3 [, ucase '6':
    : e! ]( G! f0 ncase '7':
    ) a, e3 g9 o  H! m/ u- rcase '8': , s5 H7 c& U: Y& q# t
    case '9':
    - J  b7 }1 V6 C- A& ~0 O- Pcase 8: //这是一个BackSpace键,不能禁止,否则不能实现删除功能了 * a& \8 I* |3 m
    break;
    0 y( p$ |+ t  g6 l: O6 z8 Ocase '.': //检查是否已存在小数点
    4 F7 g. z4 E" S' T9 ^1 _if(DotInStr(Edit1-&gt;Text))
    4 a; l& m- L  d% ^/ E! xKey=0;
    ) c) M  W; T& n+ ~1 ~- l0 hbreak; 8 V1 d# P' ?1 A- {) P& D
    case '+': //检查是否已存在符号 7 l0 C  d7 j$ j! `. V; y& M
    case '-':
    0 v- D* I) U7 q8 B4 z8 X1 kif(SignInStr(Edit1-&gt;Text))
    * Z# l8 r$ c/ j1 E" x: tKey=0;
    & x6 m* p$ z8 xbreak; $ X% W6 y% z( x$ V$ Y
    default: //对于其他输入键,置Key=0 / L. [$ m: U7 h% u
    Key=0; . U- a0 W3 A& w( V# y" D7 s
    break;
    ; Q; i8 i. |: L# O/ }# L+ b} : g+ z; C1 Z; `- B4 ]- f
    }   e. @+ A+ V: C. k7 H9 f
    //---------------------------------------------------------------------------
    * J; W- f7 h  {/ G* Sbool __fastcall TForm1:otInStr(AnsiString ass)
      b9 B0 K4 \2 a- x+ Y2 }% L{ % T$ R/ Q8 F: ]; J; T: }
    int ii,ll; ; L, Q3 E1 ?2 ]$ M0 F
    ll=ass.Length(); # E1 T  u$ W& S
    for(ii=0;ii&lt;ll;ii++)
    / _9 O( ^) }! \' C+ \' z{ . Z( I* ?+ L/ C; H
    if(ass.c_str()[ii]=='.')
    - w* \2 w" ?# R$ i% W+ @: y8 J{
    / e) Z$ {1 c- |! k" E" N; [# c) treturn True; $ `3 |5 i, B" @) s* V
    } ; A1 q# S- K, H3 `# J$ X
    }
    9 s* Y; i4 z/ d  Q/ preturn False; # ~; _8 ^; U3 ~% \) y6 A" B
    }
    & T5 u  L1 w5 {0 R% |% J//该函数检查字符串前面是否已存在"+、-"符号 , Y5 m; [: X7 v% V
    bool __fastcall TForm1::SignInStr(AnsiString ass) 2 T" Z: t" K2 v4 ]
    { # Q0 _* j: i. P
    int ii,ll; # [# @/ C% f- l$ B* K/ V$ ~3 a2 D7 N) I* O. P
    ll=ass.Length();
    9 q# G8 R5 L$ i8 zfor(ii=0;ii&lt;ll;ii++)
    ( ]* `" Y8 {. O& p1 q0 R{
    & I' W* p6 b3 n$ y- Xif((ass.c_str()[ii]=='+')||(ass.c_str()[ii]=='-')) ; U! O0 T8 F( H
    {
    - O) J' b5 u) L4 f2 dreturn True;
    + W1 [" K3 Z3 R# ?& N}
    , `8 m9 K  Y# @) T: u}
    ; X+ z2 ^0 l" Z! Y5 a; ereturn False;
    5 n+ w9 i* s" w# G. N3 C} # l4 T! h' y2 {0 Z/ o! ?# t
    </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-21 03:17 , Processed in 0.443273 second(s), 51 queries .

    回顶部