QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2602|回复: 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 s, h- g* G& d, G: @0 Z5 O, w
    { 0 L3 ~9 H. |% f* w, C* G
    char *string;
    7 y2 i$ G; J: [8 L* zint i,j,k; / _1 y) E' u) \/ A+ ~, d" C' R
    char ch; , o0 A$ d+ j: B. C* h% C$ L2 |
    bool flag=false;
      e" [6 p! {3 ~' ?8 {) W' e- W& F! V4 A  M; H3 x# @. F- S
    k=Edit1-&gt;Text.Length(); 2 F9 ~( ]2 `) u4 f  Z- I# t2 C
    string=new char[k+1]; $ J: G+ }/ U. j
    strcpy(string,Edit1-&gt;Text.c_str()); 7 V9 a& I. O2 c( P3 W2 M
    for(i=0;i&lt;k;i++) % |, S* s5 G7 L3 ~
    { + a; a2 _% ^) G1 Q7 p- P6 a
    ch=string; 2 C9 w) y" N  e2 A& A0 |% ^
    if(!(ch&gt;='0' &amp;&amp; ch&lt;='9' || ch=='.'))
    , o; G% d4 [% ~+ c; a$ T: }1 |{ ) |' u6 ^6 w! O0 N
    for(j=i;j&lt;k;j++) ' m9 e1 g" J  j* Y: [, _
    string[j]=string[j+1];
    % Q9 a3 n% U# ]+ K' Wk--;
    ' b+ J- ~4 X& Z8 O/ Mflag=true; 6 t0 @( v" `2 x) p# E2 s
    }
    ) ]8 N/ {4 G( |$ A. k8 S0 i} 9 B& r& O; {2 T+ o! _# [
    if(flag) 2 i* m! u0 x, s5 J7 I3 O" E
    Edit1-&gt;Text=AnsiString(string);
      B9 V7 _& |& w0 u+ Y8 jdelete[] string;
    5 z. z' f' |, I- n: k7 z: e//GlobalText=Edit1-&gt;Text; ( |: z' n$ K7 [6 w3 i' ^
    }
    , n; j$ ^# y' ~# I' j$ `//---------------------------------------------------------------------------- N: U1 x2 |$ C$ }
    *************************************************************************************************</P>
    - W/ Q# d6 `0 X/ o; O  G5 F7 |<>void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &amp;Key)
    " E/ V0 g, l, M# e! h{
    + T% U$ u( v: [$ E+ J    if(!(Key&gt;='0' &amp;&amp; Key&lt;='9' || Key=='.' || Key=='\b')) / s" w' P; s, T& c
            Key=0; / D9 Z" Y. `. d; j- C* }
    } : h$ e9 E0 {# I1 W( w/ y
    //--------------------------------------------------------------------------- </P>( m" j" ^* B; G3 L  n1 C
    <>*************************************************************************************************</P>; J' Y" @9 V+ y( b2 J: \1 c& D
    <>void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &amp;Key) * O  Z8 A- Y2 t) R# v2 p9 a
    {
    " F1 }; B5 l9 D6 Q) t2 p; n% ?* J2 wswitch(Key)
    6 f! r1 b; C2 B6 `; }{ ! S* a2 u$ |* X: _) ^/ ^0 W
    case '0': //接受数字键0~9的输入
    ( A, j% D3 m- ~% E) Ccase '1': 3 m1 y0 |/ g# ~& ]4 p
    case '2': / R8 m: }+ j! ?& S9 i
    case '3':
    6 V9 Z" |. v6 Y, }" scase '4':
    / b! H0 c& f2 I" w, k1 B1 acase '5':
    2 T7 J: h" A% l; b$ c1 Xcase '6': 0 E+ F1 P: Y; a* h6 q
    case '7': # v9 z0 b7 R8 _/ I# g2 A$ N
    case '8': + w, L: e0 a) f4 f+ E
    case '9': ! n+ g4 `; B# W: H' ]
    case 8: //这是一个BackSpace键,不能禁止,否则不能实现删除功能了 ' W% m4 t  F7 B0 [9 i' ]9 t( G9 k" `
    break; & i2 ^. t( X6 L; D- }7 I
    case '.': //检查是否已存在小数点 , d/ P# ^8 y1 v. @
    if(DotInStr(Edit1-&gt;Text)) 6 l& A* }8 b$ B, Q- v- j
    Key=0;
    - I& E  M) p( P/ g" bbreak; 9 d, g5 Z! _* _5 m' w. n4 V( ?
    case '+': //检查是否已存在符号
    - m2 n) y6 }3 m: Q. M4 v4 Jcase '-':
    8 @/ Y. s9 K! E+ [( h+ Y4 V! r0 Fif(SignInStr(Edit1-&gt;Text))
    & l" l$ W3 v8 _% e7 sKey=0; , s; F4 A# a; e2 X+ N
    break;
    . w: D$ M! u" n& a: e/ c8 L, Mdefault: //对于其他输入键,置Key=0
    4 x; z$ s8 M% u8 g  Z4 x; \Key=0; ( t. \# G( F% s3 ^' F0 Y0 V
    break;
    ' x6 O3 O7 g9 W}
      D$ W# o: j0 Q, C} 7 S: F: P& `, F1 ^+ w3 }: f, W
    //---------------------------------------------------------------------------
    9 y% T4 `6 V8 z1 E4 p* Abool __fastcall TForm1:otInStr(AnsiString ass)
    & W+ {7 |" p* M) {, B  {{ 0 s( H! d  g4 a
    int ii,ll;
    & h$ r; K! p% G# o  x, n0 s8 {# Ell=ass.Length();
    & @/ a; i: p8 ^, X0 t* Rfor(ii=0;ii&lt;ll;ii++) * R1 r0 y6 ^! B& [
    { ; {9 \; k0 a: V0 q/ P# O
    if(ass.c_str()[ii]=='.')
    $ j: h( h! [9 Z0 s0 }5 {/ }2 ~{
    ! Z. M) L/ c2 w! y0 I. Qreturn True; 5 Q( _0 C, c  a6 S5 l9 ^. J
    } ; l- p' g- G5 a: i& l' Q3 K
    }
    6 t3 A+ S; C, C# L9 y2 h; nreturn False;
    2 Q9 p" y+ _# Z7 h3 A, r5 t}
    . y! b1 r- s: m1 T+ e, X//该函数检查字符串前面是否已存在"+、-"符号 1 b% T9 `# E9 N; T: P
    bool __fastcall TForm1::SignInStr(AnsiString ass) 0 Z+ G5 N, I+ {
    { ( w! `4 R8 A1 ^# |$ H
    int ii,ll;
      i3 w% P! |# M. f4 Ill=ass.Length();
    ! D: v7 W& J+ g8 z$ c$ q0 vfor(ii=0;ii&lt;ll;ii++)   r- I4 I# x/ J9 ^
    {
    $ d6 B' Y1 e/ m5 ]# l: f2 r( q% yif((ass.c_str()[ii]=='+')||(ass.c_str()[ii]=='-'))
    : e9 f: D. z9 o* Q! _! K6 B{ : G# B) B- w8 Q5 W" {# G+ D
    return True; ! z3 q3 J/ c% m
    }
    $ T. l2 w( L: i: s8 u+ @} 4 t+ l( o. ^4 v; R2 S, U2 ~: a
    return False;
    3 u1 y$ T( a* }1 X5 q$ a}
    ; J/ G" C2 {  G7 U+ B  [* Z1 @</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 02:52 , Processed in 0.440645 second(s), 51 queries .

    回顶部