QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2691|回复: 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)
    : \& {: @* Q! f5 v2 l{ 7 v2 x) Y' w; x! y
    char *string;
    ( A# I* L5 ~+ B* x4 U2 Z# q" Zint i,j,k;
    8 d8 A% T1 F, B" S+ M( {  Qchar ch;
    4 \. s- H1 H4 n# Y/ x* V" ^bool flag=false;
    7 V5 N) I* G) |( m5 H4 T
    9 r6 W$ N! \7 J$ U5 S4 p; w( sk=Edit1-&gt;Text.Length(); # ?& g9 B) A' c7 B$ d' c
    string=new char[k+1];   e$ ^: q& U- E# X' Q5 g
    strcpy(string,Edit1-&gt;Text.c_str());
    " u% M7 G2 j4 B, q  v& p+ ffor(i=0;i&lt;k;i++) 2 Z" R% o7 G' ?5 `2 v( j
    {
    ' t$ X: e! ~9 ?ch=string; 4 y( ]" J# ]* ^5 ^) d
    if(!(ch&gt;='0' &amp;&amp; ch&lt;='9' || ch=='.')) . }% `2 ?$ y- N6 X2 k* A9 @
    { & z# {, ]8 F$ {7 Q2 ?
    for(j=i;j&lt;k;j++) $ \6 l2 x' p- y) `+ v' o! I
    string[j]=string[j+1];
    / Q) c: y* O% Rk--; , j+ c; H- T! Z" I: z" u" k
    flag=true;
    7 b/ q1 a* L  l' u1 ?' M}
    0 q9 H+ m2 Z8 _4 I}
    3 [8 P6 Y- D, ~  {if(flag)
    ; u" D* ^& B; h, f8 i' }2 A2 x# P! h8 JEdit1-&gt;Text=AnsiString(string);
    : b6 m0 B) C% Q1 v9 d- ddelete[] string; 9 B1 T- U6 F/ F1 P
    //GlobalText=Edit1-&gt;Text; & t3 D" p" [" ]6 b
    }
    ! H4 z  N! d: D7 E, W//---------------------------------------------------------------------------/ O0 x1 n! E0 t1 u
    *************************************************************************************************</P>
    ' i2 A# W+ e2 f* y( E' D<>void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &amp;Key)
    . o( i; I* q8 v- Z4 t2 h{
    " a% w  B. ?1 A8 c7 {    if(!(Key&gt;='0' &amp;&amp; Key&lt;='9' || Key=='.' || Key=='\b'))
    % ?6 L& C+ A' s" r8 |        Key=0; 3 X3 d5 }2 w3 B& f
    }
    4 o9 H4 I. b3 w$ i4 }3 s//--------------------------------------------------------------------------- </P>' f" N; g2 T0 A5 R
    <>*************************************************************************************************</P>
    - p0 _0 C; E  I% t+ X<>void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &amp;Key) ! E* _" k9 J8 W! u* Z) T
    { ! ?$ [! T* G6 h" q* q, N/ |
    switch(Key)
    $ Y  |) x& `1 x. S9 T. C8 X{ 0 }2 |3 T1 f/ n6 M, T
    case '0': //接受数字键0~9的输入
    ) f$ |" _4 A8 W7 r; Q  \2 E& B5 lcase '1': ( t1 o/ d! O: {/ S  V+ p
    case '2':
    - ?) x& o" M( q/ a. B5 d4 I0 R! C! ccase '3':
    - Q+ i6 W8 u, s/ E) mcase '4':
    . L) d( @# s3 u# E. `case '5':
    7 |7 m0 ^$ ?, Q/ E3 ncase '6':
    & e. s! Y7 ~- K$ U( `case '7': % @: O: V! `5 z
    case '8':
    ; z' y' p2 y3 `$ O* y4 bcase '9':
    * k+ w  E8 y5 u# c, Vcase 8: //这是一个BackSpace键,不能禁止,否则不能实现删除功能了
    " c- c" J8 W, \7 q, G9 D( dbreak; 4 G  p# ]: m8 E
    case '.': //检查是否已存在小数点 0 u/ `7 @0 ^; g; z# W! G
    if(DotInStr(Edit1-&gt;Text)) 0 Z$ p4 `$ j# q" B2 D6 z7 ]
    Key=0;
    5 @" Z9 X  x6 I, K* U, Zbreak;
    0 U& R# x& S3 Bcase '+': //检查是否已存在符号 : [# O+ r  N1 A
    case '-': ; R9 V+ ^4 r! k1 p. d
    if(SignInStr(Edit1-&gt;Text)) 4 ?+ G7 I2 s: s! l
    Key=0; ! i, K) P+ m6 N# u
    break;
    + L( O9 T7 T& Sdefault: //对于其他输入键,置Key=0
    8 h% Z/ \0 t* u: i$ x0 gKey=0;
    1 s0 ~# Y4 a4 j; Ibreak;
    1 U& D- U$ E5 l/ D  d} ; o( }. K; _% e- q
    }
    9 p+ i' p- a2 r//--------------------------------------------------------------------------- 5 l$ d% S+ z. W
    bool __fastcall TForm1:otInStr(AnsiString ass)
    0 }& m6 x) v* k4 k{ # u. R7 J: Z* F8 Z, n6 x3 f& \9 j" A
    int ii,ll; - \# H+ E) [4 W
    ll=ass.Length();
    0 z4 O$ r% |& Y" nfor(ii=0;ii&lt;ll;ii++) # a5 ?5 C" v& a
    {
    * S' \3 A; b, W: C; T  kif(ass.c_str()[ii]=='.')   X& ^/ c3 P9 p. ~
    { % M" M) ?/ K/ b' Z$ t% p3 D) \
    return True;
    / r8 {( y" M  A& E5 ]/ G} ' [+ l$ e' I6 W
    } % X: P. ]6 P2 n
    return False;
    . W0 w0 I$ e  Y$ v}
    # c$ ]; @( M, }: o/ O% G) I//该函数检查字符串前面是否已存在"+、-"符号
    . m, I. u- K4 h5 ibool __fastcall TForm1::SignInStr(AnsiString ass) # v- h' V5 U5 q6 p, \# c/ A
    {
    : |" K2 f+ M4 L0 _6 X4 s/ J) b. e6 Sint ii,ll;
    ; s+ R4 k  R* w  kll=ass.Length(); $ {% X0 q- x' e3 Z
    for(ii=0;ii&lt;ll;ii++)
    6 `  l  e# p/ _# o{
    1 y: E7 R0 _+ b2 w1 r. V% Kif((ass.c_str()[ii]=='+')||(ass.c_str()[ii]=='-')) 4 d, U  t- A9 K  T- G
    {
    . s6 |) J8 J/ {- Sreturn True; 4 ?. O* z7 `9 ^5 t( \
    }
    + P; q3 x6 x+ S; k. z- j}
    9 J2 n* E% L" nreturn False;
    9 S8 E: H3 w+ o. J2 ^. H/ ?} 9 m/ C0 a; P: A/ U. v  v' x# O4 r! p
    </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-30 08:01 , Processed in 0.677866 second(s), 51 queries .

    回顶部