QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2600|回复: 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) 5 V7 ?- N# Z% b2 B& v( R3 }9 }
    {
    5 ]) [3 Z# @3 `char *string; ; w+ N, r+ M: U- M1 ~' v& |# _
    int i,j,k; 7 i- l4 e# z$ S& c5 l# H) \* f( B3 g
    char ch;
    ' _6 b' X) m& {bool flag=false; 5 f' _/ y7 D& [

    5 t! w: w# U: m' n- X4 D+ Tk=Edit1-&gt;Text.Length();
    . _9 g) L; r% W9 l1 ^7 u2 lstring=new char[k+1];
    ' Y" F+ P5 N+ t* q; @strcpy(string,Edit1-&gt;Text.c_str());
    ( M9 _3 ~( U# }for(i=0;i&lt;k;i++)
    : ~4 J6 ?: I5 B3 C{
    4 l4 M/ x; h! Sch=string; / A# z8 r  g' e' ]* b1 G
    if(!(ch&gt;='0' &amp;&amp; ch&lt;='9' || ch=='.')) 1 N8 o: n6 s/ e5 J2 t" ?
    {
    ' {. C/ \- P7 Z) w3 Ofor(j=i;j&lt;k;j++)
    1 T9 T4 c, ^* Q% Qstring[j]=string[j+1];
    3 h4 k: \# T6 x+ yk--;
    # u6 H. L$ `& M3 Zflag=true; 2 _# x5 n$ q+ L' }& O+ v% [
    }
    : F8 h( t( B! f} ( f9 c; g# O& K4 d# j' [
    if(flag)
    % d. K/ X* t: |) \) E& `Edit1-&gt;Text=AnsiString(string); 3 W7 u# S, q7 N% ?+ p6 l; S
    delete[] string;
    " l2 A% x) \+ R7 D+ l" ?4 V//GlobalText=Edit1-&gt;Text; 3 ?3 f' K. g" w: Z5 s. v4 Q
    } + m7 f+ I( `) t9 Z
    //---------------------------------------------------------------------------
    / ^/ B* J: V! ]! E& K( Q*************************************************************************************************</P>
    2 M/ `7 m9 a% C# Q- j" y<>void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &amp;Key)
    : `3 v% `( c: v! E" C{ : E* q' q$ o( y- B. r1 S' P
        if(!(Key&gt;='0' &amp;&amp; Key&lt;='9' || Key=='.' || Key=='\b'))
    - K2 S! r4 G( F  _8 a# u+ n# {        Key=0; * a( N) u7 R4 V9 I
    }
    4 G+ y2 u6 P9 s  L//--------------------------------------------------------------------------- </P>
    $ H% {& m5 S- e/ r( G4 Y3 k<>*************************************************************************************************</P>: n5 r! u* }+ f! J/ r
    <>void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &amp;Key)
    ' E: t: M- F8 A/ F$ q4 |: C6 ]{
    , {. Z2 j# y$ |9 ?switch(Key)
    " i( O3 B6 r- V6 z& W; o& @- F/ I{
    8 \# {: m( `3 L, acase '0': //接受数字键0~9的输入
    # H& Q7 i4 Y4 b; hcase '1': " A, K8 I2 r0 l0 b4 p. @8 E3 B
    case '2': 4 ]6 v8 Q* j- _( l0 Q, W
    case '3': % F# ^) ?; \- u" t9 a) C2 E* e: y
    case '4': ; F3 ~5 M, k' R
    case '5': 5 G; R9 I9 x' t3 t5 }3 O/ O4 ?
    case '6':
    7 ^6 z' [* x/ u4 w3 g1 vcase '7': % j" a/ F4 ]$ Z7 J
    case '8':
    1 e) W0 {7 ?! b/ G  m' E) c+ Ecase '9':
    2 K7 ^+ `% D, Q5 Ocase 8: //这是一个BackSpace键,不能禁止,否则不能实现删除功能了 2 Y8 F# {5 [* H7 I- X
    break; 7 t( q. v1 u* x+ W4 O* D
    case '.': //检查是否已存在小数点
    ) J& ?) l1 `3 s+ k. r4 mif(DotInStr(Edit1-&gt;Text)) / E3 Q+ j5 J: \: P" s% ^" {
    Key=0;
    " W. b0 s3 E. t# {5 v2 @8 P+ mbreak;
    + g% R- {, d; {5 w5 Bcase '+': //检查是否已存在符号 : T% P* [9 l+ a
    case '-': . [: {4 I' b5 Q4 C
    if(SignInStr(Edit1-&gt;Text)) 8 g( d) |7 v  H% z  B% o
    Key=0; 0 h! J2 A. T3 X; F! F0 O8 d
    break; ; y% H  F4 T4 m# {% m
    default: //对于其他输入键,置Key=0 & N7 r6 B( [) d1 K
    Key=0;
    % t2 T) Q" {9 r/ u8 ~) ]break;
    1 {' k6 L, d) W- u} ( ~/ P) i0 E5 |/ k  z
    }
    1 \2 Y3 j8 q! Y8 {& f+ [//---------------------------------------------------------------------------
    4 [# S9 h: ?; J: Gbool __fastcall TForm1:otInStr(AnsiString ass)
    ' _: f1 t' ^, e7 \8 H! J5 m{ 5 n# U) g* a5 `9 n: m8 ]' m
    int ii,ll; 3 h8 g! B- C5 V1 ^9 q3 z) Z
    ll=ass.Length();
    9 y2 y) j* s5 |% I3 D9 qfor(ii=0;ii&lt;ll;ii++) . H  n& k6 V5 B+ r, [, [
    { : v0 I' F/ S- \/ J9 ^) d* D+ X" ?
    if(ass.c_str()[ii]=='.')
    ) M: _) c2 J* u  V# q0 q{
    . y/ _! y+ o4 X* J  a( greturn True; 9 [# k" L9 ~) H, t/ A: q6 y
    }
    , {4 l& O% a" }, ~, o  w1 a}
    . s: ~+ j4 {! Qreturn False;
      T/ O/ q$ }. Y. E}
    2 F, W+ y% g  Q- ^# N1 }5 D, Y2 J//该函数检查字符串前面是否已存在"+、-"符号 $ a' G$ v5 l$ n) X$ Z. i
    bool __fastcall TForm1::SignInStr(AnsiString ass) / g9 ^  Z- k) Z- \- b+ c
    {
    " }2 n5 L8 x1 yint ii,ll; / X( Y) D7 P% S2 i" E2 N
    ll=ass.Length(); : i' b! L% T8 v$ m, Y& N3 |
    for(ii=0;ii&lt;ll;ii++) * h7 D8 z" [+ C1 @: i2 K
    {
    ! A8 v! s; i6 c4 E$ g; G" F: Iif((ass.c_str()[ii]=='+')||(ass.c_str()[ii]=='-')) : U  k: Y7 Z- K) C% s9 k6 b
    {
    : i: l+ D5 N; V9 r- B& ^5 c0 V3 ureturn True; 3 k5 f/ T4 D0 P5 N5 r8 k. G- }% k
    } 6 p3 g* s6 S# A
    } 0 V+ l" p" c* H$ S, `* u( }
    return False; , j  r9 Q3 i! b, R: O" @
    }
    ! P+ s6 j2 `" }+ }1 ~" ~- y5 S+ 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 09:56 , Processed in 0.300800 second(s), 51 queries .

    回顶部