QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2681|回复: 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)
    ; I5 x8 K' Z+ x9 x; G8 S{   j2 m; u2 F# i
    char *string;
    0 W3 i8 x2 }! y0 Jint i,j,k;
    * w% `2 y$ V' V1 O, ?char ch; 2 x- J) Z/ [7 D, R+ w$ s+ y" h+ ?0 J
    bool flag=false;
    $ X3 a8 o6 s; I5 l2 V" ~) t
    ( L, F4 h; }! \. Z. ek=Edit1-&gt;Text.Length(); 4 ^9 k" g% ^# c1 L2 m1 o
    string=new char[k+1]; & U8 m$ R. K1 H# _/ F9 u" X4 z! k# ^
    strcpy(string,Edit1-&gt;Text.c_str());
    3 P' ^& L; b( H: t& y+ A2 k) I3 u# h  C- qfor(i=0;i&lt;k;i++)
    # t8 I' E( F0 i# O6 l2 ?2 ?{
    / U4 \/ @5 o  g! j( och=string;
    9 o; U" u9 n, h: p, M; u' Y% x( Mif(!(ch&gt;='0' &amp;&amp; ch&lt;='9' || ch=='.')) - @% ^5 ?+ p% P+ r
    { : G2 F2 y) U+ P$ ^) K! p  |
    for(j=i;j&lt;k;j++) 0 c- u2 h5 @* f! V8 A/ K
    string[j]=string[j+1]; 5 B0 x1 B% ]9 _' [* G7 t
    k--;
    / M$ g! g2 y: U( K- kflag=true; . Y4 H" r' C* F3 e  r3 n
    }
    : i& O( O. m, p! C, a}
    % N& ~2 ?+ M# p  H+ ~8 y/ Uif(flag)
    2 ~/ w* p' @$ S" [8 \5 nEdit1-&gt;Text=AnsiString(string); 0 {" M2 r4 e# l  B3 `5 m2 A" H/ \
    delete[] string; 4 a* J0 S! T: t" A
    //GlobalText=Edit1-&gt;Text;
    2 {$ c# f4 t2 ?6 O5 S2 h  B: n}
    ( c1 N. _) p5 t' G9 C  N3 c//---------------------------------------------------------------------------
    ' X$ t$ |; l: G5 u% \' w5 Q+ p*************************************************************************************************</P>& q; P- q: B. ^8 F7 F8 d
    <>void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &amp;Key)
    0 C8 X- Q* z  M: |* y# `{
    ( P  i) T( t* W4 `    if(!(Key&gt;='0' &amp;&amp; Key&lt;='9' || Key=='.' || Key=='\b')) # ]% ?: T5 Q5 O
            Key=0;
    , j5 \6 x% e6 H, E7 s* i8 r5 P} : [# I( m: w3 g9 V
    //--------------------------------------------------------------------------- </P>! L! v, Q% [# W7 w8 g4 O
    <>*************************************************************************************************</P>9 n/ p: y/ Q% P1 g
    <>void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &amp;Key)
    . N& G0 A$ n2 v  k{ 4 \' C/ g9 G3 h+ j9 Z- m
    switch(Key) - J! `, N; ?$ _
    {
    & P! J" {- I; {& J& v; ]) a1 H: Mcase '0': //接受数字键0~9的输入 . G$ G% r% W. J. z+ c# k/ w
    case '1':
    & S& [& \/ [9 \$ d% C" |case '2': 7 p# ]0 |! ?: u, h9 I3 a, x
    case '3': ' y+ i3 o  {5 m! A
    case '4':
    7 J) t/ M0 E( v& T2 {2 t9 d* ncase '5':
    % U* ]* @6 O( B, Y2 }* `5 U; t7 dcase '6':
    4 O$ q6 B( Y0 d& I% fcase '7':
    - }5 k6 |. q, ?1 s# _& r- {7 pcase '8': ' P2 |5 y. ?1 _) k. y& [% M
    case '9': . o6 ?- {- g/ |+ X' T$ i
    case 8: //这是一个BackSpace键,不能禁止,否则不能实现删除功能了
    # k3 S9 A/ {7 _$ O' @& R! U8 Y: {break;
    . Q& L& \) ]8 `: n8 qcase '.': //检查是否已存在小数点 9 }' \" I$ X, h5 r
    if(DotInStr(Edit1-&gt;Text)) * u' n& Y. |) q- Y
    Key=0; ' L0 _& |' o/ f: `$ }3 T# ?
    break;
    ! m# Q& p! P& v* ?9 o9 Ucase '+': //检查是否已存在符号 + o$ r& h# d1 k; [; G+ o
    case '-':
    ; r- P& n4 K. G$ Y5 cif(SignInStr(Edit1-&gt;Text)) $ P# \. _, S0 P
    Key=0; % T, p7 S& A  F# t- i. M' q* w
    break; 0 |3 C5 i0 q& J7 }5 y
    default: //对于其他输入键,置Key=0
    ! |+ D' K# x* s7 m0 m9 oKey=0;
    8 J8 e6 t; X: w$ \% Lbreak;
    8 O  _8 w( X! H- Z}
      Y0 s$ |% w6 u}
    8 F) G/ W( @- f8 l7 J! @7 ?5 A* l//--------------------------------------------------------------------------- 0 i- E! d" F# S+ h; \6 P+ T- C
    bool __fastcall TForm1:otInStr(AnsiString ass) + M1 b9 R$ g2 \6 e, r/ h
    {
    ; u2 a1 a5 V/ r+ Rint ii,ll; 4 _5 a- c  A; F# }; R2 O5 A1 }
    ll=ass.Length();
    1 L  e* _/ r+ Q& Hfor(ii=0;ii&lt;ll;ii++) $ j; x) ~, T; _( L6 i8 ]8 @6 k
    { $ G2 t" d5 ]2 Z% z6 O
    if(ass.c_str()[ii]=='.')
    0 U7 u' U/ D- \. o6 A{
    2 B8 B$ z/ Q; A) ?return True;
    ; N- y8 t, `9 }0 J5 c}
    7 D+ a" |$ s( t! @8 [1 C% A} ' _& k, ?4 ]7 m/ z1 a
    return False;
    . s. F7 k. L9 e1 I- R/ Z! Q} . a: w/ H. L$ i  p
    //该函数检查字符串前面是否已存在"+、-"符号
    ! N  a8 ]4 |/ D1 vbool __fastcall TForm1::SignInStr(AnsiString ass) : z( {# u: b; O2 c* V
    { ) ~# U) _+ x; c7 s
    int ii,ll; : R* ]$ i/ C$ @, b
    ll=ass.Length(); ( X$ e$ @" N4 j# Q' A
    for(ii=0;ii&lt;ll;ii++)
    , R" S: l/ s9 ^7 [- u% \1 k{
    6 g7 b" C, e: ?* Kif((ass.c_str()[ii]=='+')||(ass.c_str()[ii]=='-')) 0 }. _4 E/ j5 a: Z0 V
    { - q+ N! n* G" O  ~
    return True; 6 e) [5 c/ e0 n" P
    } 0 u6 i0 p3 F/ q4 a' @
    } 0 r& U. M" `9 E- q$ D( d; x  \
    return False;
    3 d- u5 c( S! `! g, Z% Q} ; v. W2 K+ h4 _) @9 a8 S+ O2 r
    </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-10-24 04:12 , Processed in 0.391995 second(s), 52 queries .

    回顶部