QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2679|回复: 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)
      e! b% Y& a4 \% _{ & c+ m. s+ |4 s" t: K
    char *string;
    8 i4 j# v- Z, C$ ~int i,j,k;
    . i% ~9 H$ H% q/ j* Y+ [char ch; $ M/ x3 d  M" y8 z$ F! v" d. N; B% r
    bool flag=false;
      P" H) p7 B' s- O1 F. W
    2 }& N: f7 ?' L! uk=Edit1-&gt;Text.Length();
    9 r8 i: _+ M, ~% O( q* ustring=new char[k+1];
    2 @% b- R/ N4 {( P1 c  Zstrcpy(string,Edit1-&gt;Text.c_str()); 0 u- h  v8 ]8 N* v  c, n+ E1 f+ x: e+ K
    for(i=0;i&lt;k;i++)
    " B; H2 |4 V5 P8 U. H; w' p- `{
    2 \' V4 \4 [& R  @" @ch=string;
    ! |& B& w0 m) r% M. z/ J, Fif(!(ch&gt;='0' &amp;&amp; ch&lt;='9' || ch=='.')) ! I& _1 y" q  V7 ~% O" `# v8 |
    {
    4 I+ _: A6 L9 \/ i4 _, Hfor(j=i;j&lt;k;j++) # q) c' F; k* l# F9 x4 w- {
    string[j]=string[j+1]; 3 X3 n. y$ D% w( F- Z8 ~
    k--; ' r, ?$ B4 ?' \2 ]2 {9 U
    flag=true; / r6 M7 @9 d3 k
    } # J) D+ e. ~6 T4 m3 x% ]
    }
    ; |. {9 t9 V2 b4 d$ |: H# s7 D% n7 gif(flag) 5 C4 s* k: i9 V4 h8 h- V- J$ v
    Edit1-&gt;Text=AnsiString(string); . t# o$ W7 V2 Z, j1 _3 E
    delete[] string;
    - x# m; E8 ^' z' q9 Y. A//GlobalText=Edit1-&gt;Text; 3 r% C  U& u5 u4 k6 L
    }
    8 `7 l) ?" d8 O/ w) z7 Y- y//---------------------------------------------------------------------------7 \3 \# {' z6 \" p- ]+ T
    *************************************************************************************************</P>
    - g) a# c% y: s6 I: G- Y<>void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &amp;Key)
    2 k2 |, ]. u1 O- |8 ^{
    0 M" Q% W; U9 ~4 c+ ?    if(!(Key&gt;='0' &amp;&amp; Key&lt;='9' || Key=='.' || Key=='\b'))
    ) ~8 v+ T  R1 I) P5 S        Key=0;
    8 L! ~: G% h, o+ m9 Q5 m} ) {( ~7 f/ B% k2 a4 e
    //--------------------------------------------------------------------------- </P>3 ~! I& c1 l' Q
    <>*************************************************************************************************</P>
    0 e" J7 w2 ]+ k<>void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &amp;Key)
    % Y9 p/ v/ i% d/ u9 L/ ?; T{ ' L: `8 ?1 D2 r. U% t
    switch(Key) : v6 b0 n% R3 P2 m$ L
    {
    8 o9 e! t: N! \" K% j0 g0 e* |* Ocase '0': //接受数字键0~9的输入
    ' W" ]; y  S5 F* L3 Fcase '1': - Q$ l& y! I3 K# R" ^
    case '2':   f: ?8 t: l0 A
    case '3': / Z" D; ?' D# u0 I0 K1 J
    case '4': 7 [# i% x0 Y2 }) t  E  ~: R
    case '5':
    # T9 v$ n% N/ k6 W: Qcase '6': 7 K6 L/ q* e8 t2 e5 O) k6 ]
    case '7':
    . \+ F8 W4 c3 Z, Dcase '8': 8 Q! \# `3 _; Z1 a5 O# h$ D6 ^2 G
    case '9': 9 ]$ f2 p: T; {
    case 8: //这是一个BackSpace键,不能禁止,否则不能实现删除功能了
    1 E6 Q- R6 f. s5 U' _break;
    0 a4 E& F) E; _  x+ z3 Wcase '.': //检查是否已存在小数点 9 E: n& b8 f5 o  H9 \
    if(DotInStr(Edit1-&gt;Text)) % g! C# B* Z. y- c# @, \
    Key=0;
    $ B. L. N( `5 [- S  nbreak; . t; f% a* U% ~3 T! |
    case '+': //检查是否已存在符号
    , c, z3 R8 Z7 s- Zcase '-':
    * n% @& C! K8 S8 I: Gif(SignInStr(Edit1-&gt;Text)) 7 d$ S, Q6 w6 Y: x# C8 D, V
    Key=0; , g0 v* N" m. Z- A) P
    break; ( ]$ K2 {  h2 A; K
    default: //对于其他输入键,置Key=0 4 y* s1 y) N4 B3 z. s( I
    Key=0; , v2 b: I+ S3 s5 g& x5 t
    break;
    " P. Q5 Q( |7 `9 O$ y}
    ' ?( x- G, d' c8 l* x9 Q8 N}
    % O9 J1 {4 A) q4 L+ ]% ]6 R1 Z//---------------------------------------------------------------------------
    # U* P6 p# k7 ]5 Q8 g& m, c) m4 [bool __fastcall TForm1:otInStr(AnsiString ass) 3 ~9 I7 Y% b5 p7 e: j# [# V
    {
    & r2 W% O0 x4 z. u9 Iint ii,ll; ( b0 Q! P' t4 a, y' q
    ll=ass.Length();
    1 ?8 K0 E3 i9 ~, g3 }for(ii=0;ii&lt;ll;ii++)
    # x% I! l3 w# n5 A) v{ 9 u9 ]* E( q5 ]7 u
    if(ass.c_str()[ii]=='.')
    ; e9 |& h$ ?+ f# a" ~{
    * f, x# f# L0 R0 q% X* a9 Rreturn True;
    4 C6 U2 \0 q, f4 x1 L/ O} $ c! |/ d% l% O& {6 v6 ~* h
    }
    5 R! [8 g5 g0 d% W& Treturn False;
    & u# l2 Q0 i  h  ^  r} ' |2 z! X: h# F2 g+ r& j6 A* ]2 _, R
    //该函数检查字符串前面是否已存在"+、-"符号 * X* |7 @5 f$ T" o) N# K
    bool __fastcall TForm1::SignInStr(AnsiString ass)
    " o, o* ]7 A' W0 j{
    . a2 h% A1 n8 V0 C* v  nint ii,ll; . n" L5 Y4 }% j
    ll=ass.Length();
    8 q' F2 m- r. o& a5 @. rfor(ii=0;ii&lt;ll;ii++)
    ' l0 A% c7 ~" {{ 1 ]2 x$ E6 }0 D% h( I) p% i
    if((ass.c_str()[ii]=='+')||(ass.c_str()[ii]=='-')) ) d; H1 i4 A% @, D
    { * b" A& O6 V3 M& ^0 g7 v" L
    return True; , \/ h/ W: k8 G# @% s8 U7 X0 P, r
    }
    : }4 I5 U* W- P9 @} 3 s) b3 R4 W6 u  @
    return False; ' }5 f: i; M1 b' C
    } / V) s) L/ b6 H( {9 a$ Q; L: J
    </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-10-24 02:23 , Processed in 1.650938 second(s), 50 queries .

    回顶部