QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2683|回复: 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)
    7 f  b8 Z2 E2 q" O# [1 {, n{
    % W' y/ U% l% Rchar *string;
    0 \4 U- P/ z( P/ g6 fint i,j,k;
    ; V1 C5 n+ x! \6 [! N" tchar ch;
    ' P1 g" i  M0 i+ }. Jbool flag=false;
    ! n7 L4 J9 b4 x& `$ w: R- M8 ~/ v# |/ @1 T) v9 ^6 j% S3 \
    k=Edit1-&gt;Text.Length();
    ( F0 p3 q0 e' i; t- Z- u0 k& O, Estring=new char[k+1];   P0 O# Z% y- d. m
    strcpy(string,Edit1-&gt;Text.c_str()); ) ^" F+ K# k4 S9 R9 T
    for(i=0;i&lt;k;i++)
    & B" [7 r+ \9 i, Y- M! N, \$ X{ ' }/ l: P& B9 p( e
    ch=string;
    # \5 e  {! J  a  C( Y% S3 j' yif(!(ch&gt;='0' &amp;&amp; ch&lt;='9' || ch=='.')) " u9 H, A6 P6 `2 ?2 h
    {
    + \8 [! i& X# Y& [, ofor(j=i;j&lt;k;j++) 1 j6 E2 C; P. U
    string[j]=string[j+1]; 6 N$ y+ t! o% K$ b8 I
    k--; ( n0 ^; F1 |3 ]2 O+ G
    flag=true; - q' e2 _7 O! p% s, ~, h, Y
    }
    2 G4 D$ x) z  L5 u} 3 D! \' M# ^* k1 ~
    if(flag)
    8 H& q3 b9 X- v9 O, J, S) F+ }! qEdit1-&gt;Text=AnsiString(string);
    7 _* M# R# R' @$ cdelete[] string; ! s/ J6 T. ~8 G3 m$ C
    //GlobalText=Edit1-&gt;Text; . i; A! M5 c: e' n( |' B" z
    }
    " E% n! E# v8 [8 |7 N1 R" b//---------------------------------------------------------------------------
    6 ^1 @" a. I' ~6 Y% Z- u*************************************************************************************************</P># ?: e8 N+ L1 a( O' U# Y
    <>void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &amp;Key)   O0 T& Y# C# X$ K  @
    {
    ) f( s& }) Q: s: ^% B3 x; W5 f6 T    if(!(Key&gt;='0' &amp;&amp; Key&lt;='9' || Key=='.' || Key=='\b')) 2 Z6 N# u' D1 M9 z# c
            Key=0;
    $ j+ {* w3 Q) {; h2 e8 e8 B}
    0 U& ~+ e( |. I" D//--------------------------------------------------------------------------- </P>& s5 Z8 @4 T# ?; m- n) M
    <>*************************************************************************************************</P>& Y- w& P. Z' o7 x# F& b' }
    <>void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &amp;Key)
    3 ?6 j8 A. F1 b* {' R* H{ 2 c8 }- G+ Q: D
    switch(Key)
    ( H( ?9 J* |' [- v5 D{
    6 h- R" m. s: J# Q8 pcase '0': //接受数字键0~9的输入
    + A% Y% Q9 X7 S- e# fcase '1':
    ; u- j# Y8 O1 _case '2':
    1 v+ `' G% J, M. \case '3': - n7 ^! l: Y$ \; R; K
    case '4':
    . ^$ s7 t1 x+ I' j, f, i* Zcase '5':
    9 x. f+ A, d# E' @4 fcase '6': 5 e; y$ Y; e9 N8 |
    case '7': 5 h% T9 B: u. y1 t1 \
    case '8':
    % M, L& `9 A+ z1 vcase '9':
    : E* N/ S/ n7 e; |case 8: //这是一个BackSpace键,不能禁止,否则不能实现删除功能了
    . S6 _& B3 D* Rbreak;
    7 r8 Y. U+ P" J) c4 {case '.': //检查是否已存在小数点
    $ M  Y6 ]& D$ c  f+ L; V* jif(DotInStr(Edit1-&gt;Text))
    : [4 ?& f4 m2 d6 D( E8 R! Y2 |% hKey=0; 6 A% S2 F8 q  v& I
    break; % \% m7 g/ ]1 }; y6 W
    case '+': //检查是否已存在符号 6 m" {% y. ^( v3 @
    case '-': 7 J: y( z& x7 @$ Z0 c6 m
    if(SignInStr(Edit1-&gt;Text))
    ( K2 v2 @$ n; e5 cKey=0; . H: b! y: b: u2 ]) ?
    break; + n8 Y1 L; H! y& j* J, A
    default: //对于其他输入键,置Key=0 5 R9 k2 ]( I9 p9 Z
    Key=0; 1 G4 h5 ^) P2 {- F
    break; : U) V% q$ @  D/ L
    }
    " \( ~1 w: B1 l% q- S} ) z/ m  H+ p: P7 n& M
    //--------------------------------------------------------------------------- ' e3 j" X* r  q* _2 |4 p  e! I
    bool __fastcall TForm1:otInStr(AnsiString ass)
    8 U: F. v+ g  _0 |8 N6 e! t1 e{
      ^, V0 G# f" i7 X7 b0 Nint ii,ll;
    ; W! S  v; `: y; u! gll=ass.Length();
    : v' M4 o3 F9 a9 dfor(ii=0;ii&lt;ll;ii++)
    4 k# |+ T& U' u' \5 b2 I{ 7 N. {6 z" `& q9 P2 A8 j0 t
    if(ass.c_str()[ii]=='.') : X( q' Z. B- @) G
    { ; O$ b" h; Y/ @
    return True;
    " V) {" x- @! z8 v}
    6 W, {0 M7 R. e$ w} ) @$ r, ^0 M# S! \5 t) ^
    return False; ! W$ x7 q! @7 B+ d" e" n
    } 8 L$ M, y3 |/ B6 g5 E! i2 z
    //该函数检查字符串前面是否已存在"+、-"符号 + Q( N! z& H) L. }3 M$ b# p
    bool __fastcall TForm1::SignInStr(AnsiString ass) 7 W) u+ j, l: F
    { 9 P, l$ h& [& a
    int ii,ll;
    ; S# f  ?7 ]& V. ]ll=ass.Length();
    4 b+ m7 @: `. e1 Q8 [5 l# xfor(ii=0;ii&lt;ll;ii++)
    ( q. }9 a, C7 y1 r) n7 U; r{ 8 h& `: g- h, V4 L# D3 m
    if((ass.c_str()[ii]=='+')||(ass.c_str()[ii]=='-'))
    . [+ U- \3 V, B* v6 ~6 u{
    ) \4 O4 k' z% p( Jreturn True; ; {% s" H: [0 M9 U. V) t1 Q
    } 7 B( \# F6 i+ }* ~- u
    }
    % n3 L, d% o- ]! @; J, U* @( treturn False;
    ' d: i. I" Q/ R5 @, w} * W. b8 `: U- @) ?8 R) B8 c  V6 H
    </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-25 13:10 , Processed in 1.361703 second(s), 51 queries .

    回顶部