CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
英特尔®游戏设计大赛100美元现金周周送 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

请教关于录入时间的简单问题,附上本人的菜鸟办法。

楼主zqyouxg(墙头草)2003-12-03 23:56:14 在 Delphi / VCL组件开发及应用 提问

本人想通过TEdit来解决日期的录入形式问题,但网上一直没找到合适的方法,今晚憋了1小时,只能用如下的方法解决,如高手们有简单的方法,请赐教。  
   
  var  
      Form1:   TForm1;  
      numedit:integer;//实际输入或剩余多少字符。  
   
  implementation  
   
  {$R   *.dfm}  
   
  procedure   TForm1.FormShow(Sender:   TObject);  
  begin  
  edit1.Text:='         -     -     ';//空的xxxx-xx-xx形式  
  end;  
   
  procedure   TForm1.Edit1KeyPress(Sender:   TObject;   var   Key:   Char);  
  var     sit:integer;//xxxx-xx-xx形式的日期字符串中numedit所在位置  
  var     text:string;   //xxxx-xx-xx形式的日期字符串  
  begin   //#8     退格键  
  //sit         :     12345678910  
  //               :     xxxx-xx-xx  
  //numedit:     1234   56   78  
   
      if   not   (key   in   ['0'..'9',#8,#13])   then  
      begin  
              key:=#0   ;  
              exit;  
      end;  
   
      if   (numedit=0)   and   (key=#8)     then   exit;  
   
      if   not(   key=#13)   then  
      begin  
                if   (not   (numedit   =0))   and   (key=#8)     then  
                          dec(numedit)  
                else  
                          inc(numedit);  
   
                if   (numedit   >   4)   and   (numedit   <7)   then  
                      sit:=numedit+1  
                else   if     (numedit   >=   7)   then  
                      sit:=numedit+2  
                else  
                      sit:=numedit;  
   
                if   (   not   (sit=0))     and   (not   (key=#8))   then  
                begin  
                        text:=edit1.Text;  
                        Text[sit]:=key;  
                        edit1.text:=text;  
                end  
                else     if     (key=#8)       then  
                begin  
                        if   (numedit   <=   3)   or   (numedit   =   5)  
                                or   (numedit   =   7)   then  
                        begin  
                                text:=edit1.Text;  
                                Text[sit+1]:='   '   ;  
                                edit1.text:=text;  
                        end;  
   
                        if   (numedit   =   4)     then  
                        begin  
                                text:=edit1.Text;  
                                Text[numedit+2]:='   '   ;  
                                edit1.text:=text;  
                        end;  
   
                        if   (numedit   =   6)     then  
                        begin  
                                text:=edit1.Text;  
                                Text[numedit+3]:='   '   ;  
                                edit1.text:=text;  
                      end;  
                end;  
        end;  
  end;  
   
   
  实在是拿不到桌面上来的,望高手指正。  
   
  问题点数:20、回复次数:6Top

1 楼zqyouxg(墙头草)回复于 2003-12-04 00:14:16 得分 0

先设edit1的最大长度为10.Top

2 楼sailer_shi(孤独的我,孤单的走,孤单的活着,孤单呀)回复于 2003-12-04 08:45:09 得分 0

你要干什么用?Top

3 楼superhjw(黄锦云)回复于 2003-12-04 08:49:12 得分 0

晕。。。。  
  为什么不用MASKEDIT?  
  多此一举Top

4 楼outer2000(天外流星)回复于 2003-12-04 08:50:44 得分 10

为什么不用MASKEDIT?  
  也可以用DATETIMEPICKER来输入啊;Top

5 楼Little2000(rainy)回复于 2003-12-04 09:35:10 得分 5

用MaskEdit控件很容易实现的哦Top

6 楼lgqTiger(【老虎】(抵制日货...))回复于 2003-12-04 10:39:17 得分 5

Delphi不是有专用的时间输入控件吗?  
  你只需要把结果给格式化输出就行了!Top

相关问题

  • 菜鸟问:数据录入 怎么实现?
  • 菜鸟问题:怎么设置datawindow的数据录入界面?
  • 菜鸟问题:如何创建一个能够录入数据的数据窗口表单?
  • 菜鸟请问大家!怎样对时间进行录入和查询!解决就加分!
  • 大家别笑啊,偶菜鸟一个,如何录入相关内容到CSDN的Blog中?
  • 菜鸟提问:我想在某个表中建一可以录入图片的column,数据类型应该选择什么?盼各位热心朋友帮忙
  • 超难问题:有没有好办法解决大量数据录入的问题
  • 没办法!总是问些菜鸟问题!关于UNICODE!
  • 关于两个case的问题,菜鸟没办法.
  • 报表录入

关键词

  • numedit
  • sit
  • xx
  • xxxx
  • 形式
  • tform
  • 日期
  • key
  • 方法
  • edit

得分解答快速导航

  • 帖主:zqyouxg
  • outer2000
  • Little2000
  • lgqTiger

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo