QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2599|回复: 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)
    % |# ?7 j$ P: ]5 c- W# V{ # j' r# o! v( K- A$ D+ S  f2 ~
    char *string; 7 ?2 x7 w" x4 x# x
    int i,j,k; * z3 _! w0 o1 n: `, W8 J
    char ch;
    2 S3 R3 X: d; R. }bool flag=false;
    4 s- z! @- R( P4 v9 b: G6 q1 k( |" x
    k=Edit1-&gt;Text.Length();
    / T3 E; }. _# |' O" [) [5 ^; rstring=new char[k+1];
    - R- \. b2 F+ u, [0 C; ~* istrcpy(string,Edit1-&gt;Text.c_str()); , \) s! e% t# ~
    for(i=0;i&lt;k;i++) " j3 H  F1 q, ]3 P! E/ _! Y
    { 7 e: y1 U( k) B+ h  A4 u" x2 [
    ch=string;
    : a  N% z# A# `  |' Hif(!(ch&gt;='0' &amp;&amp; ch&lt;='9' || ch=='.'))
    ( N. A6 t$ S' n6 ?) n{ 7 |/ r- S8 [& \2 l, A+ G7 v
    for(j=i;j&lt;k;j++) ) P) y8 `- n% t' ~+ c' P" a
    string[j]=string[j+1];
    ) ~5 b( \2 x: R" O- g8 A/ Xk--; & Q  B, }, a3 n# _+ q- O
    flag=true;
    ' l- J, u  c: N& O+ V8 Y7 _} 5 ^: F9 ^" Z5 U0 J: w7 H* x$ Q
    }
    # n+ ]7 F# f9 cif(flag)
    1 m' \+ R( d3 o# p1 J7 t: @Edit1-&gt;Text=AnsiString(string); / V. J: C0 P% f1 j) I% }! W
    delete[] string; : M+ R4 v4 n# z3 D- I
    //GlobalText=Edit1-&gt;Text; # F' f. b/ f# Q7 p! v' L( N
    }
    # p& b( l: F' \# `+ T6 ?//---------------------------------------------------------------------------5 O  ]/ x1 o0 K8 b- U
    *************************************************************************************************</P>
    3 Z0 a4 \) q$ h+ k7 o9 U1 |$ s1 [<>void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &amp;Key) 3 Z5 l8 [7 O% R# m+ I
    { # B) z1 I, G& o$ k* S0 G0 |
        if(!(Key&gt;='0' &amp;&amp; Key&lt;='9' || Key=='.' || Key=='\b'))
    . B& b, ^* l! k/ Y8 x        Key=0;
    1 S; y+ {9 L; W, F} / B# w1 R4 X" H+ j& G/ i: `
    //--------------------------------------------------------------------------- </P>
    8 @- z7 B: G' A/ @" u3 O4 Q# Z<>*************************************************************************************************</P>
    / S( A% K1 T3 f& m* M<>void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &amp;Key) 1 A1 d; S5 g$ S# Y% {
    { . L) e3 y; d, z2 p, j9 Y6 w* N0 m
    switch(Key) 6 L, x/ J! E9 Z4 \! h
    { 8 m8 B' J8 y8 A) r: C
    case '0': //接受数字键0~9的输入 + ^5 K: h) F0 E) b
    case '1': ( z4 V1 I: x# V. ?% z; _
    case '2': 6 [8 q$ b" A& S( k
    case '3':
    ( g7 a/ z6 o0 z8 \" Qcase '4':
    ( d9 g8 y3 K4 x! ccase '5': , t0 U" R) }+ F0 L
    case '6':
    4 X" k( e  q9 N9 t& dcase '7': 6 D  \4 }" N1 w3 I- E, D$ v
    case '8': 1 Y5 _3 q# Z! u' j' k9 v
    case '9':
    + A) c6 S* a! ~case 8: //这是一个BackSpace键,不能禁止,否则不能实现删除功能了 5 |5 }1 E9 J$ p' n: F! W
    break;
    : R. U- `# I' [3 G) ~case '.': //检查是否已存在小数点 * h6 o2 ]% ?3 R: N9 Q9 l
    if(DotInStr(Edit1-&gt;Text)) 9 ~; \* F6 G6 @6 v" q; v
    Key=0; - v4 I4 \" [' ]1 z7 b
    break; 3 D) M7 f1 W. B6 N  P1 ]
    case '+': //检查是否已存在符号
    , K6 [; g& a" p2 Kcase '-':
    + ~- n& i# D  [% f$ s! Qif(SignInStr(Edit1-&gt;Text))
    / o. D3 m) g1 W) rKey=0;
    8 B& [& c' \3 T$ h+ I$ fbreak;
    % I8 ]3 {7 c) G/ {: I( Cdefault: //对于其他输入键,置Key=0 6 E. ^: y2 M. l3 |( I  V
    Key=0;
    5 ]' E3 u! U( C: T1 _# xbreak; . I, N8 Y7 F9 _- y" u
    } % k5 F: H& h0 ]6 E6 a
    }
    9 i5 s" b6 H. s3 @. w. a; N//--------------------------------------------------------------------------- : j, [! D, k7 j  I# b- w
    bool __fastcall TForm1:otInStr(AnsiString ass)
    ! v; a6 U9 l' I4 _9 d% V+ N) n- G{ 0 T* q4 e) Q+ F
    int ii,ll;
    ; A& e% t7 u4 yll=ass.Length(); * i; `! X: T% o& Z) O, ^( V
    for(ii=0;ii&lt;ll;ii++) % z' n% F$ d5 S7 P( z# n  z
    { & g& i! j* H! T" b
    if(ass.c_str()[ii]=='.')
    6 a9 g/ }0 O5 K  e' \, [{ . i- J( p  x3 s
    return True; 7 K0 M+ w2 Y+ a' u# Y. ?2 h
    }
    * y1 N. A3 t, a) |, _0 n5 `}
    2 j: J3 U7 H/ e3 `+ L6 ]2 t7 k( Dreturn False; : E: W6 K% n5 F4 u$ O  H2 q
    }
    / L  Z1 Q2 }  d+ c+ L//该函数检查字符串前面是否已存在"+、-"符号 1 d6 l; m) H4 {
    bool __fastcall TForm1::SignInStr(AnsiString ass)
    1 P. _8 z' H/ X9 {# `) D$ q, B{
    0 [( P& }5 U: C4 e0 r6 ]! Xint ii,ll; 0 u% I+ B. P6 f1 b9 n
    ll=ass.Length(); ( C- m. i' v0 C9 t* O7 ~5 Z
    for(ii=0;ii&lt;ll;ii++)
    0 D3 `7 ?7 V7 y9 E5 g1 H! G- U; s{
    3 Q0 V4 F+ d- z8 u+ \7 W& N) A0 L9 sif((ass.c_str()[ii]=='+')||(ass.c_str()[ii]=='-')) 1 ]) d8 R" j/ G$ A
    {
    $ n4 s* B( h; K& \- A, p6 N% Ireturn True; : ^2 q- N+ X( K( ?& w
    }
    2 X2 x- M2 T& g; j4 n( a}
    ) j: {. B) q' H9 P2 greturn False;
    8 O7 `; J+ ?, m}
    # j3 [  y3 z9 O: P' N" k</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:22 , Processed in 0.514493 second(s), 51 queries .

    回顶部