QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2619|回复: 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) . Y2 X+ q: U& v* J3 t
    { , p" I4 b3 E/ q- C
    char *string;
    ) e' o. e7 i- D$ R0 K8 G' Lint i,j,k;
    1 p, G( |" o! y$ P! v6 l& x# zchar ch;
    6 H; v* I9 |6 Z- e) r! Y4 \bool flag=false;
    ) Y! I+ y3 M3 e% F; w
    # u5 q& F, `; |4 p! x! a* X) v4 N# }k=Edit1-&gt;Text.Length();
    . L0 ]# d3 ~' X, z; T, \: nstring=new char[k+1];
    1 @$ q) Z" E- f; l) a% }strcpy(string,Edit1-&gt;Text.c_str());
    - `1 X2 C: v& v3 z- x3 w8 ufor(i=0;i&lt;k;i++) 2 X2 [; ]/ b  \4 I& |
    { . \* X6 v5 Z2 K
    ch=string;
    0 Z/ k1 Z0 Q$ {; Wif(!(ch&gt;='0' &amp;&amp; ch&lt;='9' || ch=='.')) ) M" K2 A$ S% o. U
    {
    ( c! T: G3 w/ Vfor(j=i;j&lt;k;j++)
    ( S8 |+ O9 @  Q3 c( ?8 ], Jstring[j]=string[j+1]; ) R6 U2 J2 i! r% Y# f. l
    k--;
    0 Y7 V1 B/ Q! y2 U6 w7 aflag=true; - a9 N3 \- K' {8 ~2 U8 y% b
    }
    " y2 m2 _' C* L$ D5 w} : Y7 h0 [" V1 O( m( U
    if(flag) ( X0 u6 U: O2 y: ]
    Edit1-&gt;Text=AnsiString(string);
    * A: d% q9 }2 }: m+ _3 idelete[] string;
    9 d. _5 A; v4 X% Q//GlobalText=Edit1-&gt;Text; . ^$ T2 g( _# {6 @* w0 P1 G
    } ; b  @! i' m) ?) D; U: P' F2 W# H* w& x
    //---------------------------------------------------------------------------
    ) i, J3 G- {% c( {( Z- B# C) E! ?*************************************************************************************************</P>
    ' ]# s3 `$ A6 u( o<>void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &amp;Key)
    : L( A8 B3 Y- @1 D6 d0 j{
    " m% Y" W: E" i    if(!(Key&gt;='0' &amp;&amp; Key&lt;='9' || Key=='.' || Key=='\b')) 3 A" y9 k. ]4 k( A8 q# I
            Key=0; $ ^7 `3 T2 M7 E$ z+ z
    }
    8 M" w/ t: C( y7 r7 ~//--------------------------------------------------------------------------- </P>& q2 W) I+ b  y  W  _
    <>*************************************************************************************************</P>% \# w: a# d9 ?$ q- m1 T4 z( y
    <>void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &amp;Key) , K7 q+ Q# y) ~
    { - u3 L( b$ T2 @+ U
    switch(Key)
    7 r# Y6 j- ~# _6 S{ , K: J3 V& P  Y& B  ]
    case '0': //接受数字键0~9的输入 ' F, s; b7 Y) T3 g& h
    case '1': " I) D! ~. x4 Q/ o
    case '2':
    ' @( H/ Q8 z+ l' ^! Ecase '3': ' H6 H- ^! F* [$ O  _" C: K+ |
    case '4': : c* S  y: S: W  h# G7 c& u
    case '5': - A$ R" v6 S8 {
    case '6': " d2 }* x( s( b9 [) c2 V
    case '7': ! r' ~  N8 `8 q, C. e
    case '8': " s4 M( Z# H: |: ], d/ T
    case '9':
    7 p: z0 f' |1 D9 ]- a/ f6 p$ p0 dcase 8: //这是一个BackSpace键,不能禁止,否则不能实现删除功能了 3 _3 ?1 M! R; }1 Z6 v
    break;
    / n/ k* _6 S9 d/ X* H) bcase '.': //检查是否已存在小数点
    # z  d& V5 i, M/ u& d4 D) x. i; @if(DotInStr(Edit1-&gt;Text))
    4 X* J0 G2 C( A7 i. o& V0 CKey=0; 2 P. ]4 X' s& s) C) u
    break;
    / F7 D1 v5 M1 }$ N: u$ ?case '+': //检查是否已存在符号 & _( m( C% ?7 t, I+ g6 r
    case '-': 6 ^8 c- \# M: h# i) W. q, m
    if(SignInStr(Edit1-&gt;Text))
    # }7 V4 D+ R( T# R4 mKey=0; $ ]3 B! x$ _: Z7 E8 W4 G) ?6 m) F
    break; ) I  u2 ?5 b% N9 c# Z' q- C* Q  m
    default: //对于其他输入键,置Key=0
    * {: H* w. l0 j- f1 f9 b0 b9 I/ kKey=0;
    $ h2 N9 F( r" F; @/ qbreak; 2 ~$ K! `& ^3 n4 H: i! B% Z0 R" _
    }
    & ]# g/ L1 j: P% o) s} . `4 g* q$ M- l+ Z: R
    //---------------------------------------------------------------------------
    # z2 T' Y$ R$ x% n3 \- g1 B, R) O9 Vbool __fastcall TForm1:otInStr(AnsiString ass) 6 r1 b: ?! x/ P% p' I( X$ h% o) T4 a
    { : d0 t7 I* K. \7 F
    int ii,ll; 4 u  a6 g! z6 }9 `' z) G4 p0 l
    ll=ass.Length();
    0 S  V5 |- w$ L. L4 s1 U5 K7 ]for(ii=0;ii&lt;ll;ii++)
    : Y/ I0 K7 p) X: ?- ]" e{
    2 Q2 B! n4 v) W1 p; d6 Bif(ass.c_str()[ii]=='.')
    % v& m! v& U0 E{
    / g& p/ u7 _9 S6 l  L: r$ h) C' j$ Areturn True; ) w0 X2 N) O' c
    } ( U) Q$ x" D( Z0 K4 j# \
    } ! R, Q4 o3 T% y" P" q
    return False;
    * ^! N8 V- D7 N$ H  s}
    1 @, p8 t" K6 l//该函数检查字符串前面是否已存在"+、-"符号
    8 ~- q* B+ C: w9 Xbool __fastcall TForm1::SignInStr(AnsiString ass) $ T+ d! G2 Y' v" v2 P5 ?
    { - R6 c. Q$ v/ C% g9 \: x- u9 O
    int ii,ll; , f& e1 J; u* d1 e$ s6 o
    ll=ass.Length(); 7 |, z( w/ A7 t& N  D9 c4 i! {* f
    for(ii=0;ii&lt;ll;ii++)
    % t0 P3 @% k+ s. J: K{
    & r3 u: H! X; B) rif((ass.c_str()[ii]=='+')||(ass.c_str()[ii]=='-'))
    ( `$ b7 ]; O5 _! o  {3 ]9 k{
    : [: Q: u/ m2 ?( j, y( Z+ i3 v- Qreturn True;
    3 V# X, [& I; D( f) G: _! U2 N, V9 a' p} : N( j, |! U, K; T; x$ f+ G
    } * V" i( u2 d7 R& w
    return False;
    + `0 S* H; L0 D3 `+ c}
    ! r0 @# v2 Z% }( w. x</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-14 03:30 , Processed in 0.352433 second(s), 51 queries .

    回顶部