QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2598|回复: 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)
    6 |2 a& m( O8 c  _. O{ ; F& A! ?5 |' n
    char *string; ; Q# \0 N5 L5 a' |2 K8 f' T) B1 b
    int i,j,k;
    " a* ?, V" m0 \& tchar ch; & w* k, L; M2 Q% o7 i
    bool flag=false;
    & x+ x% a! p. y5 Q+ i
    ' ~' q0 l/ L0 ek=Edit1-&gt;Text.Length(); 5 Z4 g! K) b! o3 h. e
    string=new char[k+1];
    % ^  |, D5 L1 y0 L# Kstrcpy(string,Edit1-&gt;Text.c_str());
    3 c* \! l. T/ R8 W9 @0 Vfor(i=0;i&lt;k;i++)
    * p8 i3 y$ M; G( Y. i{
    " V. v- e: }9 kch=string; 4 v2 ~# J! j  z7 f! U2 {/ W' X" k% j8 z
    if(!(ch&gt;='0' &amp;&amp; ch&lt;='9' || ch=='.')) - K1 w; |( M* x7 J5 z
    {
      G0 n3 [1 c( n4 m% Ufor(j=i;j&lt;k;j++)
    # w9 B7 L+ U9 V5 @string[j]=string[j+1];
    1 U" Q5 _2 d6 Y, X4 lk--; ! U6 E/ i4 C+ q
    flag=true;   m+ s- J' J/ l6 M
    }
    1 F' S  U& X# d3 ^- B4 J/ w$ m9 D} 4 w; {2 D. t; [) \% D
    if(flag) / l3 ~9 \3 C1 h% Y/ W9 e: {
    Edit1-&gt;Text=AnsiString(string);
    ' e6 ]0 U" M% S+ ^9 k" F6 gdelete[] string;
    3 O4 y: `% J, e6 s+ h+ w//GlobalText=Edit1-&gt;Text;
    7 P, p& d) t- U, h# O* M( R, X3 b- @}
    + z6 f4 z0 E5 W! C//---------------------------------------------------------------------------& y4 q' h4 Y3 e5 |1 f" _
    *************************************************************************************************</P>
    0 @6 _/ A  J5 |% v<>void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &amp;Key) $ w% P+ H0 S+ W( r  c" a
    { ; Q8 n$ j; M9 i7 D9 u6 |7 z
        if(!(Key&gt;='0' &amp;&amp; Key&lt;='9' || Key=='.' || Key=='\b'))
    3 |- s6 L, ~" U9 G4 U" ?- f. d        Key=0;
    9 Y. Z( {( n# W7 l, `( r- O8 K} & F) k7 x0 c) r' \' Z
    //--------------------------------------------------------------------------- </P>
    * ^( y$ ~+ I3 ]6 W<>*************************************************************************************************</P>1 s6 k) R% g* A& _% J) \" Q
    <>void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &amp;Key)
    4 F3 S) s" s+ t: V, e- O{ , A+ [7 l6 X: C
    switch(Key)
    9 t2 Y# e# t+ O- N/ W. C{
    $ |! ?' L1 w& E4 d  n* Tcase '0': //接受数字键0~9的输入
    ; a( H, y0 N" gcase '1':
    5 r' b- }8 F5 B1 pcase '2':
    7 C) |7 q  o; _9 lcase '3':
    / X5 G7 p# _9 o- ]case '4':
    ) Q7 w5 [) j: R' b) g' h( L" }case '5':
    3 U5 H3 o2 R; F+ C# Rcase '6': & N: s: z7 P, J2 g+ I4 I4 `/ i0 D3 H$ [
    case '7':
    . R2 h! r; S' G# @( @' u$ Hcase '8': ! o* a! c& D: S5 V2 h8 F/ O
    case '9': 8 R! @/ F$ k7 Y6 Y% J: A+ t2 x( y$ U+ y
    case 8: //这是一个BackSpace键,不能禁止,否则不能实现删除功能了 , y. B5 w" B, V
    break; 0 l  j9 o  r# [
    case '.': //检查是否已存在小数点 ! k" i: m! P# Q6 v
    if(DotInStr(Edit1-&gt;Text)) 9 X6 ^2 X" v$ ?% `- q: s/ ^
    Key=0;
    7 n. f" }  ?: r* Wbreak;
    ' R" o- P4 b, tcase '+': //检查是否已存在符号 1 l) S" @' m3 }( n% A, ]/ m7 N
    case '-': $ d0 W' H; Z. i
    if(SignInStr(Edit1-&gt;Text))
    : W  i% C4 b5 E( d- P  o+ W) F  r# PKey=0; 0 J: D: [5 e- V- A
    break; 7 w/ H6 G; B4 x# z( {' P
    default: //对于其他输入键,置Key=0
    0 ^/ m" F4 m. t5 g5 v4 M5 sKey=0; 4 a; N, R) E6 z) Q! u
    break; ; |1 J5 _* O, d& [0 M- f* {
    }
      q( }& [: B* ^  J4 z! i' B! N} ; b. B- O. _5 b  x/ g
    //--------------------------------------------------------------------------- " b) ]% p0 ~- j+ \1 b5 b) K
    bool __fastcall TForm1:otInStr(AnsiString ass) 0 n9 m( E! @! [5 N7 \
    { 1 r) i! N6 c! C9 \4 C+ b. o
    int ii,ll;
    ! q# e# k! T/ yll=ass.Length(); ! s4 f0 _6 ]4 i5 L7 @# ]% [+ x9 t# k' v
    for(ii=0;ii&lt;ll;ii++)
    # F1 V8 |2 ^" g" M. T& f5 a2 l{ # V. z" E9 ^! U6 q3 a- G# w5 F
    if(ass.c_str()[ii]=='.') 2 j) K; i; x* \
    {
    & d9 v* ^' v, z0 y5 `return True;
    & F9 O4 M7 e$ t  z$ I; X3 r} " f$ p/ Y1 s8 M0 j' Y$ Y
    }
    , ^( }1 u# A2 U$ G  Z4 c* \: vreturn False;
      _8 }1 Z9 {# j}
    0 U6 {+ |7 S" y- W# u+ X//该函数检查字符串前面是否已存在"+、-"符号
    - P; F  ~6 n" g' i$ Mbool __fastcall TForm1::SignInStr(AnsiString ass)
    ( Y/ G1 R) n( s0 I/ ^# }# E/ q{ ( ^" d1 D8 S  E/ C) M
    int ii,ll;
    6 P: u2 k7 f/ m6 G6 g. F( L3 qll=ass.Length(); + z$ g# ]7 i; Z! B
    for(ii=0;ii&lt;ll;ii++)
    % H2 W) B. b9 q6 |; |. u{
    * v; z7 B# m1 j8 l% Cif((ass.c_str()[ii]=='+')||(ass.c_str()[ii]=='-'))
    " H4 t+ e! P% `, R* c9 m{ ) b1 |: t$ _+ d: i! y7 j* P0 a8 D
    return True;
    ' {) z( l# ]* ]1 i4 d) a} & q* [8 t2 J( Z1 A- ~
    }
    4 m( O+ @: e9 m3 x$ rreturn False;
    1 [- F8 ~9 W0 Y, B* u} 5 W. [2 n& K/ s6 l
    </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 06:15 , Processed in 0.305898 second(s), 51 queries .

    回顶部