QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2604|回复: 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 C$ E% n0 v" F0 R  r' D' k9 j6 @9 H7 T1 K{
    + }" {' l4 H5 _% Nchar *string; / E$ Z: f1 U/ t1 e2 F2 Y7 |9 e
    int i,j,k; , y% s& j6 N0 E  \( W% f3 o+ f( x5 e
    char ch; ; r+ L( U/ Y/ d6 z  z0 X7 S) x
    bool flag=false;
    * p1 M  t$ l9 H9 `" I; p( b
    4 @' U% G$ g% ~8 k1 W8 o/ f0 vk=Edit1-&gt;Text.Length();
      }8 j$ E2 ], I0 \4 _* c* q/ Ystring=new char[k+1]; ( T. T+ O( G  z2 d6 p0 z$ w# ?
    strcpy(string,Edit1-&gt;Text.c_str()); ( i) [" Q* q: p4 }' Z' R0 ]
    for(i=0;i&lt;k;i++)
    + {: s- W8 \6 g4 x8 R0 P{ / ?; T. L8 j  I
    ch=string; 6 J- Q* g" E4 `& s" Y0 y
    if(!(ch&gt;='0' &amp;&amp; ch&lt;='9' || ch=='.')) + T1 n- Y. \. @5 W  e9 w# O! d8 \! a
    { / q; K- Y4 A- N* L
    for(j=i;j&lt;k;j++)
    + e+ a* ^% A' U, astring[j]=string[j+1]; 3 I; |0 d3 Y0 u
    k--; * k5 m) N2 B5 [+ o3 B( ?  e
    flag=true; * P) _* h8 d, N3 ]
    } ' v, q4 j; m6 V% V4 H
    }
    ( u' C  o% h0 f" e, {8 tif(flag)
    * n% F3 v6 b* ^Edit1-&gt;Text=AnsiString(string);
    2 Q+ ^5 ]' ?  H7 s) b) Kdelete[] string; * y7 k  J6 n$ ?
    //GlobalText=Edit1-&gt;Text;
    % o% \5 B9 }. U6 h} 2 ^7 P! }, h/ ~! A; [
    //---------------------------------------------------------------------------/ z& z8 V: _' l8 H
    *************************************************************************************************</P>
    2 p$ D1 K8 q/ T% L  C1 A# {<>void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &amp;Key)
    $ u. q1 j! ~, T( m. ^% j$ ^* e{
    # W, l2 @5 A5 L0 D5 q/ |    if(!(Key&gt;='0' &amp;&amp; Key&lt;='9' || Key=='.' || Key=='\b')) $ V0 I5 \8 W9 h5 V+ j$ @) r
            Key=0;
    / m4 R6 N2 E$ H% P- V7 ~$ z' _} , p  s) @& `$ D
    //--------------------------------------------------------------------------- </P>
    ; R2 H* s* ]7 U9 @<>*************************************************************************************************</P>
      {5 K# `* ?% X: S5 Q4 ?4 g<>void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &amp;Key) # v& L) ?, ]: k
    {
    4 [' z8 O' G) U. f$ u# D; J  M* xswitch(Key) $ N0 J' S9 ^  Q( G  C- v
    {
    $ p! H- W7 z( I* Y  }! @case '0': //接受数字键0~9的输入
    ) l& ?# s8 @" c1 Qcase '1':
    8 h6 l2 A2 ]9 F- l, y5 p+ Hcase '2':
    ( Z6 o. M- l5 Tcase '3': - H: c7 L; H5 d% l
    case '4':
    8 Q" Y' z, _/ [" xcase '5':
    6 w9 I, C, P* e# Kcase '6':
    " ]$ x. |# z0 t" H+ A, acase '7': 3 I" U+ ]9 s3 [5 Z0 q: B
    case '8':
    0 u4 A8 m2 l1 l3 d! d' z5 ucase '9':
    % b9 o5 `! Y/ pcase 8: //这是一个BackSpace键,不能禁止,否则不能实现删除功能了
    $ Z) Z6 q; e9 L* ubreak; % t4 Y( s: ~  i: u1 w) w( V
    case '.': //检查是否已存在小数点
    3 J9 H$ O( I6 Pif(DotInStr(Edit1-&gt;Text))
    ; M# j6 \) N: |* ^& uKey=0;
    6 x, M7 N. q: `3 l+ Wbreak; $ E; D1 r( i) r5 `0 {0 R: \+ R
    case '+': //检查是否已存在符号
    / J0 S1 r+ W, o4 e/ r# Icase '-':
      q7 S5 E) Q6 pif(SignInStr(Edit1-&gt;Text)) . r+ K2 d1 D5 h1 s* D; w
    Key=0;
    # W) H/ H) {- B' L0 n& wbreak;
    9 }" C3 \# y% G. v; [, {3 a1 |" H9 H, Rdefault: //对于其他输入键,置Key=0 ; o7 c  p* N& o* f. {- W8 J. ~% ]% O
    Key=0; 3 O. R5 v& x  ]5 ?; C- C$ f
    break;
    1 n3 L) J! j1 ~: M( O- a}
    ( B) e1 ?8 m) R, F% X( O5 h* d} - b( V# L2 i$ N) I# W  J; r
    //--------------------------------------------------------------------------- 6 L% K! m6 C4 k; p3 v0 T, q- E3 w# E
    bool __fastcall TForm1:otInStr(AnsiString ass) / i! k; Y. [' }5 P
    {
    5 C3 q: {1 j6 u8 A* V2 \+ Mint ii,ll;
    ) n! D4 T, p) v* _) F4 F8 Wll=ass.Length(); ! ~% S6 N7 G; ?, s
    for(ii=0;ii&lt;ll;ii++) ) W0 M0 F5 L4 L! n7 q3 G
    {
    , W) h5 D% z) D  I$ r' tif(ass.c_str()[ii]=='.')
    * c6 a& x5 H2 W- i5 ~{ " ~, J8 }, S2 r1 Y2 }7 P" w
    return True; 1 w/ P# b- a. l% s5 P
    }   r1 e! Y1 Z! p- g
    }
      e- ?; ?$ U* R! P( V1 oreturn False;
    ; o8 O" C9 S2 s8 F* _3 p! O} 9 e. s, h& U, E; U
    //该函数检查字符串前面是否已存在"+、-"符号
    2 F/ F+ f1 R. e1 R3 o7 `bool __fastcall TForm1::SignInStr(AnsiString ass) . i0 b) Z1 f$ T+ x9 I* r6 d
    {
    * v& U, d+ C, \0 E- ^9 Xint ii,ll; ) c8 W3 @1 N  j1 Q! L
    ll=ass.Length();
    7 A( F; a2 |; S5 |1 Ifor(ii=0;ii&lt;ll;ii++)
    ! M* G  n. `$ [0 a{
    ! y" s: W7 }; pif((ass.c_str()[ii]=='+')||(ass.c_str()[ii]=='-')) 6 {( F- j0 c5 O/ U# N
    { & S9 q, b- Z! A# d) I+ m) n
    return True; 0 Z& q# N( x$ j4 q7 ~& h$ @$ u' w
    }
    1 m3 {6 H0 f& r4 c1 r} 0 {! T8 u4 @2 Q' b+ M
    return False; * S9 _) |2 T0 \6 `
    } 0 t5 C2 b3 q  z: I5 G) B) [: D! `$ C: f
    </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 09:47 , Processed in 0.404568 second(s), 51 queries .

    回顶部