QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2620|回复: 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) ! r3 ?: b2 ^9 z* |  m! k& ^
    { 8 Z4 u4 a' I' Z$ Z2 y5 x/ o
    char *string; 8 P; _2 Z9 T5 ^
    int i,j,k;
    7 K6 m/ w" j: vchar ch;
    6 R+ F$ N) [( ybool flag=false;
    ; i2 o# x! e3 z' _& s6 j% c$ q: H9 O3 t+ I5 [: q. B3 G
    k=Edit1-&gt;Text.Length(); . L, U7 k" x( U1 `' A
    string=new char[k+1];
    % e% ?2 F" [- V) sstrcpy(string,Edit1-&gt;Text.c_str()); 1 {4 ?0 ^4 ?1 a0 u- v- _: D
    for(i=0;i&lt;k;i++) ; \7 S  z' E; ~& G! m: g5 H
    {
    & ]/ H+ P" k6 T  o" Tch=string;
    & U) b% V$ t5 h( G& \; S4 L  Hif(!(ch&gt;='0' &amp;&amp; ch&lt;='9' || ch=='.')) - m$ x! X9 a4 k7 I4 g
    {
    $ b  g4 \1 u/ C+ O& Xfor(j=i;j&lt;k;j++)
    ( ^- Q5 |6 s% _, zstring[j]=string[j+1]; : k9 f$ K; z7 Y$ B
    k--;
    0 I. A, ]0 O' P8 ]( r# G0 `flag=true;
    3 `9 b3 g0 l6 H$ D% _}
    " s) B( A5 i. p# _5 C' f} $ Q# K; x& i$ p0 w
    if(flag)
    ! V6 i3 b* [. i/ X& P* R' FEdit1-&gt;Text=AnsiString(string);
    9 i8 O( j) }  Sdelete[] string;
    / e$ H- b% m. i/ h5 P//GlobalText=Edit1-&gt;Text;
    5 b& s9 M/ k  d; R! N+ }2 b( u}
    5 y2 \( R6 j# L( {//---------------------------------------------------------------------------
    % I( f! a7 z: z0 c* }*************************************************************************************************</P>" P2 {- d6 |; |& V* @
    <>void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &amp;Key)
    ; V. D0 n6 E. F( q6 L, m{ ( `) ^0 @! f7 _) B
        if(!(Key&gt;='0' &amp;&amp; Key&lt;='9' || Key=='.' || Key=='\b')) ! Q: J) Y* B% H, X0 A/ V# |9 G
            Key=0; ) \2 S6 r, k, D4 g* @
    } 3 R- a4 a! z0 Q5 g. E
    //--------------------------------------------------------------------------- </P>
    " x6 ^: O+ a% |- h0 e) c<>*************************************************************************************************</P>, C) H- R4 j% R' Q" O/ q
    <>void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &amp;Key) - h: D4 W( i) N9 W
    {   h% q- L! h) P. y7 m
    switch(Key) 3 H+ `" }1 n* x8 r8 p
    {
    * h' Q, m7 k: Q' q7 x3 pcase '0': //接受数字键0~9的输入
    ' n( U% M8 p  C0 R+ O2 o0 hcase '1':
    # W7 P& y5 A& h: ^4 F( V+ Dcase '2': 9 ?. j2 `( z1 O+ s6 o" e! C
    case '3': ' u" z: r( A- r& B# }
    case '4':
    9 w" R, B5 @+ N# M; t0 M( v0 @case '5':
    0 ]8 Y3 R" @( Z8 Q; D% A; ycase '6':
    * m2 L5 g7 a7 I2 f" B4 c& }+ vcase '7':
    5 G  h# @3 s. M+ G1 U( zcase '8': ( Q& S% d/ V( s6 v4 g+ _5 g/ `
    case '9':   a' G! P% P( I0 G
    case 8: //这是一个BackSpace键,不能禁止,否则不能实现删除功能了 & d0 b/ H2 u% W& v. Y( E- W: q* ^' W
    break; / F8 v, v) N, G  X/ {8 l( Z
    case '.': //检查是否已存在小数点
    * }5 Z: j' w, x, z- [0 Wif(DotInStr(Edit1-&gt;Text))
    , T# Q5 [$ I! ZKey=0;
      [9 ~) L5 K% J& }8 Nbreak; ( O3 L1 y1 o6 D/ T6 @0 P7 X1 l1 g3 z5 y
    case '+': //检查是否已存在符号 ) G) Z& n' [( B( F7 X* c
    case '-': 9 r4 i: h1 Z$ W0 w
    if(SignInStr(Edit1-&gt;Text)) + A0 Q  @9 N* u, n  P8 _# U
    Key=0;
    ) _  f5 b; B) @# O2 ?( Jbreak; 3 z9 P& Q4 |) k
    default: //对于其他输入键,置Key=0
      r# Z' j/ F) X2 QKey=0; % M. e$ z- a9 U
    break;
      m8 O7 ~6 D9 [( `- V- ?}
    6 X- b$ i4 J4 J. \, s} / q6 z4 P% I0 y  f+ S  \
    //---------------------------------------------------------------------------
    0 r) C2 ^$ v7 D( L3 y, @bool __fastcall TForm1:otInStr(AnsiString ass) 6 k  I8 U2 l0 N. }6 i) F
    {
    . x) R9 j  r7 @8 g" o4 Pint ii,ll; ( Y9 E8 W' z& G' X& m/ M
    ll=ass.Length(); 9 x# t; D# Y/ E2 w6 i
    for(ii=0;ii&lt;ll;ii++)
    % V8 Y1 k6 Q& z{ " ]2 v. y+ c+ a  b
    if(ass.c_str()[ii]=='.') ) w5 a5 {+ F5 }% d  w
    {
    % S1 h0 {$ L$ ^" O& Areturn True;
    0 ~( T4 _/ T% u7 G  E  j}
    2 ~1 F# s* s! O* q' q' R/ r} . |: k0 M6 i6 O
    return False; - t. i6 Z9 m9 t2 N, N/ p
    }
    ( ~* ?3 r& ]! f$ _//该函数检查字符串前面是否已存在"+、-"符号 4 r% n' `: ^7 O: `! Q' A/ S6 W: P
    bool __fastcall TForm1::SignInStr(AnsiString ass)
    " O" X8 G0 q# U) Z+ x3 p. _6 \+ o{
    3 [+ ]) s3 N1 K0 lint ii,ll;
    % L/ g3 p, P) Y6 F3 b: Pll=ass.Length(); 6 |' x5 U& I/ F- a2 f8 J! D
    for(ii=0;ii&lt;ll;ii++) & \) k, S: `2 E
    {
    . a% Z1 J+ ~8 o: H; P4 nif((ass.c_str()[ii]=='+')||(ass.c_str()[ii]=='-')) . c" Y1 A  t8 T; S2 J! b/ v6 V
    { . M5 n" N! i% w8 A: ?. U# T
    return True; + Y0 X6 ^, {: z1 d5 n
    } ) \7 S/ Z9 |% v
    }
    1 d4 R* `6 [% o- z  i  o2 ]# t1 yreturn False;
    * Y4 D. M  L  o- ^7 t; ]}
    + x$ u, p; M9 H, \( y</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-6-14 06:44 , Processed in 0.428124 second(s), 51 queries .

    回顶部