QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2622|回复: 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) ! @- a3 d' N% r% M9 m( T2 Z9 A
    { + B( E$ Y' x0 N) [- f- ?. m3 v# P
    char *string;
    ! ^4 T4 A# t( S, n" e, k6 o; X) aint i,j,k;
    ! w. [; \; X# l$ M* Achar ch;   C0 ~; j- m( i
    bool flag=false;
    / g+ M8 j( _: |: g) C. }6 L$ Q& f. t: c# B3 K2 Q2 d
    k=Edit1-&gt;Text.Length(); 0 P* s# ]4 Z3 h' L+ u. f- X
    string=new char[k+1]; 2 r  I; u# J6 L  y
    strcpy(string,Edit1-&gt;Text.c_str());
    " U3 r9 v$ m2 j7 A) b  Y, Tfor(i=0;i&lt;k;i++)
    * Z3 |6 w+ ?. s" A* o. [{
    ( j5 o+ V% U& y+ C# W7 C! `ch=string;
    ( r9 {. `; ~" Z$ bif(!(ch&gt;='0' &amp;&amp; ch&lt;='9' || ch=='.')) 0 @; G3 ?( X- G! A, w6 h
    {
    0 K7 T% n. ~+ H1 }. k: u  hfor(j=i;j&lt;k;j++) ) C6 |! y7 k# ?  H
    string[j]=string[j+1]; % j7 N8 L7 I  P" I! `
    k--; " U  ]! g' q$ n2 u+ b3 O& b. N
    flag=true;
    * D& G' |$ C6 U0 X& m} * s9 _! {  \( b! V
    }
    1 m/ u9 s/ z5 R7 G: sif(flag)
    & e' X4 D- [% g5 H0 ZEdit1-&gt;Text=AnsiString(string); 9 P  R' S- M7 f& f/ U) E
    delete[] string; + j+ n& |! {5 n$ V
    //GlobalText=Edit1-&gt;Text;
    7 G3 H2 I) b# k, g}
    ' ]. w7 e4 H+ F# V//---------------------------------------------------------------------------* ~6 x- |* \7 s- \5 f9 a
    *************************************************************************************************</P>
    ! {! m. }: S5 _) y& Z7 e7 U<>void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &amp;Key) 4 |# k* j, v2 w4 O+ G/ a8 \9 M# d
    {
    & K( @7 M& U. [    if(!(Key&gt;='0' &amp;&amp; Key&lt;='9' || Key=='.' || Key=='\b')) / C) ^/ ~5 s; s& b3 f. B. H
            Key=0; * L: [2 j( E" ~( V. O
    }
    8 X+ l" x: ]; h+ e9 D9 R5 k# m//--------------------------------------------------------------------------- </P>, ?4 u% Y: E, @. ~+ k$ K
    <>*************************************************************************************************</P>
    7 ?4 W* S5 Z5 L' k+ V5 `7 ]; O<>void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &amp;Key)
    : q% ~, c' A5 z" f& B{ 5 K2 D- U- b( b3 S/ Y
    switch(Key) % ~2 _+ M& k- g1 g" q8 X% g
    { 4 _& {9 z* r1 S% ]4 @0 r
    case '0': //接受数字键0~9的输入 $ Z3 E- B3 c& n! J$ q( b& U6 x, z) f
    case '1':
    + F4 t2 [) O$ ?3 F2 u! D5 icase '2': ! ]0 X) Z! Q/ l) L. C  @
    case '3':
    8 V6 S( S+ b, P8 Dcase '4':
    9 [# a, ]1 d0 v3 ]case '5': ) F2 |- i/ S. L- z0 K5 H
    case '6':
    : Y# Y+ k$ o+ V& N; N0 B" Zcase '7': ; i6 b& q2 H' \7 x
    case '8':
    - K& M# u  E7 g7 o9 Mcase '9': : z6 Y, W8 r& l, t+ W
    case 8: //这是一个BackSpace键,不能禁止,否则不能实现删除功能了 3 U" L4 j9 m9 x8 o
    break; / j# {  k' I. D
    case '.': //检查是否已存在小数点
    0 o* [7 A7 p8 e3 l* h/ N8 Pif(DotInStr(Edit1-&gt;Text)) - W  c4 o, W9 ?* P
    Key=0;
    3 G# \" F1 Z% @) Rbreak;
    * H& m, }' X, B: Zcase '+': //检查是否已存在符号
    ; ]9 |/ v/ w! U  L) k8 D( ?case '-': 6 K2 }1 [$ s6 A% V" ^
    if(SignInStr(Edit1-&gt;Text))
    - l4 u$ O" b; H& M7 xKey=0;
    9 [7 R9 t/ I* w" L. Vbreak; 9 d8 m' o6 O7 j& O- `
    default: //对于其他输入键,置Key=0 3 u' M$ @+ ?0 y+ x2 H4 m' ]5 r3 q
    Key=0; 0 u& {9 H4 I: U& x* P" H
    break;
    4 i( m. v! G9 u% n6 Q2 {& e}
    $ U; Q5 f' C9 E  r} % r* Q: C# A) o
    //---------------------------------------------------------------------------
    5 P* s1 @* _4 ~6 c2 Kbool __fastcall TForm1:otInStr(AnsiString ass) / B7 M/ Q4 `7 Q! r2 a  L, B6 A
    {
    ' b' X+ O: Y& C$ s' zint ii,ll; 3 z, y2 |& d6 ?5 T
    ll=ass.Length();
    6 R. p! o2 ^3 x% o! d. k' r1 |for(ii=0;ii&lt;ll;ii++) . Y) E0 @5 M5 c, J4 L9 m4 g0 q% o
    { 5 V. G" y% w3 Z& O0 p
    if(ass.c_str()[ii]=='.')
    3 z; L+ d% Z! i% F) U3 A{
    5 b+ Q( z# b! X% J( i8 w3 [& ereturn True;
    0 O$ H5 D6 k% |8 O& |) ^6 P} + P. S3 D$ O! b; R$ S
    }
    $ m" i7 x$ f2 ]! F7 |: O; Areturn False;
    " J+ P) \5 a9 P6 P} 2 U" q0 a, ^; @2 l+ Q
    //该函数检查字符串前面是否已存在"+、-"符号 6 Y  X0 q8 p. x( z
    bool __fastcall TForm1::SignInStr(AnsiString ass)
    , k- h# `0 J# M5 m6 n' F{ " @* ]) ~: g1 M* `) r" w
    int ii,ll;
    8 }; p( u' U( o  }ll=ass.Length();
    % Z" |  b! h% F& |" E! C, E4 a2 @8 xfor(ii=0;ii&lt;ll;ii++)
    & f0 Y2 `$ Q2 [/ {8 B/ ]# q) C9 b' @8 D{ - M" U" h6 N) v% Z  N+ G
    if((ass.c_str()[ii]=='+')||(ass.c_str()[ii]=='-')) 6 ~" ^' r4 A2 A2 B
    {
    & O& N1 x5 _5 {return True; " ?' I8 C% o5 K! \; D% \: o. p9 Z
    } 6 X% p9 M$ k( K- y( s" g5 u7 D
    }
    2 v  g5 o1 l2 v. t$ o0 i* `6 ~. B7 Dreturn False;
    ( h5 @7 c! B; u} 0 O: s5 W% H$ Y- P% W
    </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 14:27 , Processed in 0.411255 second(s), 51 queries .

    回顶部