QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2621|回复: 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 o5 d2 C/ S. v8 x# d$ c0 K  t5 T
    { 1 h, P8 T- @, R: E8 s& m! R* D
    char *string; 0 q- U* @* x* k. I4 c! ?% N# Q" ]% g9 r
    int i,j,k;
    ! F& P) U- d, Q6 Mchar ch; 9 v! r5 f' I4 X6 P  R
    bool flag=false; $ w* y% G2 N* E# k3 o* `
    6 J( q; V9 k8 o# i' N# E" ~7 p
    k=Edit1-&gt;Text.Length();
    ' k( o$ A  D! V( J5 t8 _: Wstring=new char[k+1];
    ; F; o: w6 I7 Q8 w5 t. Wstrcpy(string,Edit1-&gt;Text.c_str()); ! e* h' I2 L4 u* J* V6 y3 l
    for(i=0;i&lt;k;i++) 6 j9 t9 E- J) K' c/ M8 b( c
    {
    / B3 B1 D/ P( G0 _+ v2 v2 Z) hch=string;
    # z) N: m1 o% Z3 m" S' p( Cif(!(ch&gt;='0' &amp;&amp; ch&lt;='9' || ch=='.')) $ m( O/ s+ `8 E2 X3 _- B+ w
    { 6 I  P2 ]" z2 D2 r! u0 A$ T% t
    for(j=i;j&lt;k;j++)
    , |; p1 Q4 |5 _string[j]=string[j+1];
    $ d7 t/ b* g# q7 m% t; Bk--;
    7 {. c! @6 U* _5 dflag=true;
    2 `* D4 W  e0 o& S  R. J}
    0 g( P% l! Z% r9 ?} + }! \4 T2 v- H& \
    if(flag)
    - {  R+ _* {* |( v/ F" dEdit1-&gt;Text=AnsiString(string); 3 o) A( W9 N3 k" @, n% ~) M! h
    delete[] string;
    8 {/ T6 O8 ~- A" c- F//GlobalText=Edit1-&gt;Text; * ^4 F/ w/ L% o  B) J/ G
    } + h. L1 e1 J$ d. b. _5 P! |6 L
    //---------------------------------------------------------------------------1 _9 i3 a; g0 T3 q. n! _2 G
    *************************************************************************************************</P>4 I; ^2 W: E' p
    <>void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &amp;Key) ( x) k* y' ^- {8 S) Q6 z! F7 R
    {
    / e/ V  G% \  l+ ]9 [, e1 \' g8 L    if(!(Key&gt;='0' &amp;&amp; Key&lt;='9' || Key=='.' || Key=='\b'))
    & g8 I/ b: M3 u& L0 ?- \( u        Key=0; . q1 S( M3 K+ A+ a  Q
    } $ U5 A0 s6 K1 p- H+ U
    //--------------------------------------------------------------------------- </P>! v6 ~+ t% ?0 D5 W$ L& T- k
    <>*************************************************************************************************</P>
    " K; z3 V5 }& w- m<>void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &amp;Key)   p0 B6 z- a9 Q$ @, O) ?
    {
    6 i9 U' t3 n! q1 Z2 n" u- T( qswitch(Key) 5 d, N. b2 f: @0 Y- M$ R
    { 7 V8 J$ u. r3 n' m: ~; [
    case '0': //接受数字键0~9的输入
      R: f+ l' t0 J9 W' ~case '1':
    " p8 U% C/ K+ f8 w! C" icase '2':
    . G1 @% z! ^' t# T/ v! t6 r* ~$ Zcase '3': / y2 |6 ?/ y/ J/ m  \: V6 H0 g. D/ X
    case '4':
    9 U+ I2 B& G& ecase '5':
    : a9 o+ d8 }$ D1 U) {case '6': / Q+ n0 R& X; B/ w2 ^
    case '7':   A2 z% k8 f2 R. x/ ]* i
    case '8':
    + z9 d3 V# _- X% n" bcase '9': - z" V  O# R1 i8 f$ l- c; x
    case 8: //这是一个BackSpace键,不能禁止,否则不能实现删除功能了
    1 q1 {& X4 V5 k, cbreak; % n  x! w/ R/ |- }' \' v
    case '.': //检查是否已存在小数点 ) n6 m9 w  ~. t
    if(DotInStr(Edit1-&gt;Text))
    ! L/ B) p/ _; kKey=0;
    " g2 D4 R2 r+ b, hbreak;
    ) Z2 w. V! S; h% }9 Hcase '+': //检查是否已存在符号
    3 n/ T1 \5 A( p  v( P: x2 @case '-':
    " z( G4 v. O8 wif(SignInStr(Edit1-&gt;Text))
    . L8 P( N/ \* _* k! _& w* JKey=0; - i4 O- X; Q+ C0 J1 u
    break;
    , R8 z6 Y9 B9 k  Xdefault: //对于其他输入键,置Key=0   ~; P+ H7 d  I+ A9 L; }6 r2 [4 @4 n
    Key=0; 5 O3 E* y, W/ h% y
    break;
    ) x% p1 }8 M% p9 m" ]. y% u) M' c}
    ' ^3 Z2 i2 P: z, k6 M}
    " c4 p8 L" V7 N//--------------------------------------------------------------------------- , A$ a1 }6 v0 e4 O& v9 o
    bool __fastcall TForm1:otInStr(AnsiString ass)
    ' I4 e+ I% o% P* T( F. V{
    $ E0 r" Y, A5 U4 }) vint ii,ll;
    ' {9 ?* ^+ Z: w( u. a- v, ~# P5 o; Jll=ass.Length(); + w$ X7 E. m5 e$ e1 b' R
    for(ii=0;ii&lt;ll;ii++)
    - Y; R) c) v5 }8 p{
    1 _  F' _6 k+ m( N$ F7 v/ Pif(ass.c_str()[ii]=='.')
    6 [+ [  A% M$ c! D' N{ ) \$ w! R+ m( T0 U1 O8 J
    return True; 0 y0 ^! t4 y1 a  d
    } / b; u* Q6 O6 o8 `1 L
    }
    . s* U, [5 V9 T* Hreturn False;
    : N$ N# i; E# k7 D9 O}
    $ a5 b- I( P+ U1 A//该函数检查字符串前面是否已存在"+、-"符号
    % u( R6 H4 o, Z! A+ E" xbool __fastcall TForm1::SignInStr(AnsiString ass) 0 y, {: p" K, X! ^4 x8 X' m0 x; ?
    { ! ]5 R# T5 V4 X1 L
    int ii,ll;   s7 ?4 J, i+ E6 x/ B
    ll=ass.Length();
    & Y/ G( f( O5 l3 i! h! n- b+ ifor(ii=0;ii&lt;ll;ii++)
    $ l5 c6 K5 s; s5 J* S, w+ b1 W{ 4 n, m* }2 |1 b1 e7 ]2 i: p( L4 q
    if((ass.c_str()[ii]=='+')||(ass.c_str()[ii]=='-')) : t6 D4 M* H. G' P0 d1 h
    { & f, _/ l0 w7 l( y% {( V+ I" X0 J. u
    return True;
    3 h$ `" I1 ~0 r' [} - ^+ y/ Q9 i+ X" D8 T
    }
    ( I! k) e  n8 r5 j* x( n+ C: f9 m7 sreturn False;
    " h7 }7 G$ R( W: z5 ~} ! m8 Z+ J4 D5 [' |: r4 C
    </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 08:24 , Processed in 0.405691 second(s), 51 queries .

    回顶部