MaskEdit日期输入问题!

zch619 2007-08-30 04:02:15
怎样用MaskEdit输入一个正确的日期?例如:2005-05-03日在输入时在输入月份时在第5位上输入5就自动判断出输入的大于1,并将其自动调整为05?日的输入同样!
...全文
246 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
O0ooo0oO0o 2007-09-01
  • 打赏
  • 举报
回复
procedure TForm1.Edit1Change(Sender: TObject);
begin
if length(edit1.text)=4 then
edit1.SelText:='-';
if length(edit1.text)=7 then
edit1.SelText:='-';
end;
may_05 2007-08-31
  • 打赏
  • 举报
回复
如果想要初始时间为空的话用TdxDateEdit也可以,它的初始可以不带任何时间
hongqi162 2007-08-30
  • 打赏
  • 举报
回复
也只能这样了
zch619 2007-08-30
  • 打赏
  • 举报
回复
这个有个缺点就是在用黏贴时无法判断!
在onexit中加了日期有效性的判断!现在只能先这样了!
zch619 2007-08-30
  • 打赏
  • 举报
回复
解决了,大家看看是否有更好的办法:
procedure TForm1.medt1KeyPress(Sender: TObject; var Key: Char);
begin
if (medt1.SelStart=5) and (Key in ['2'..'9']) then
begin
medt1.SelLength:=2;
medt1.SelText:='0'+key;
end;
if (medt1.SelStart=8) and (Key in ['4'..'9']) then
begin
medt1.SelLength:=2;
medt1.SelText:='0'+key;
end;
end;
zch619 2007-08-30
  • 打赏
  • 举报
回复
关键,我想初始值为0000-00-00,然后用户如果不输入的话,我在程序中判断出其值为0000-00-00就不往数据库保存!
用DataTimePicker这个总是要有一个日期,感觉不好!
hmzgz81 2007-08-30
  • 打赏
  • 举报
回复
要不然就要找找第三方控件看看罗。

再就只有自己写个这样的控件了!
hmzgz81 2007-08-30
  • 打赏
  • 举报
回复
这个不好弄吧,

用DataTimePicker 把format设置为 yyyy-MM-dd
zch619 2007-08-30
  • 打赏
  • 举报
回复
就是想这么做呀!
Selinaxiuer 2007-08-30
  • 打赏
  • 举报
回复
DELPHI的maskedit 有输入5就自动判断出输入的大于1,并将其自动调整为05 的功能嗎?
沒有吧? 重新編寫程式看能否實現此功能.

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧