同上,
或者方法也可以
或者方法也可以
解决方案 »
- 您会吗?这是菜鸟级数据库读写
- ro的client可以用是dll吗
- delphi+mysql 的“无法为更新定位行,一些值可能已在最后一次读取后已更改”问题
- 怎么才能自动向论坛发贴子
- WebBrowser显示字符串内容后如何保存的问题?谢谢!
- 用Delphi的都是高手,哪位高手使用过TAPI过来帮助一下!
- 用Delphi如何得到物理内存的大小?
- 寻找我的csdn上的好友“深宇”他的qq是45553746!!请大家进来看,来着有分~~~~~
- 如何判断一个文件夹的上一级文件夹?
- 我急需中文制作安装程序工具!InstallShield Express汉化版或更好的。
- 初学delphi,简单问题请教
- 怎样调用.chm帮助文件?
或者是两个控件一起用:tedit,tmonthcalendar(samples)
难道你表中的字段是文本型的?
edit1.text:=formatdatetime('YYYYMMDD',DateTimePacker1.Date)
var
i:integer;
begin
if key=#8 then
begin
edit1.Clear;
key:=#0;
exit;
end;
if not (key in ['0'..'9',#13,'-',#8] ) then
begin
key:=#0;
exit;
end;
//////////////////////////是滞能进行-的插入///////////////////////////////
if key='-'then
begin
if length(edit1.text)=6 then
begin
edit1.SelStart:=5;
edit1.Text :=copy(edit1.Text,1,5)+'0'+copy(edit1.text,6,1);//'-';
edit1.SelStart:=8;
end;
//end;
if (length(edit1.text)<>4) and (length(edit1.text)<>7) then
begin
key:=#0;
exit;
end;
end;
//***************************************************************判断输入的年是否有效
////////////////////////////////////////////////////////////
if (length(edit1.text))=4 then
if (strtoint(copy(edit1.text,1,4))<1000) or (strtoint(copy(edit1.text,1,4))>2050) then
begin
application.MessageBox('不是有效的年,您的输入范围只能在1000-2050之间','提示',mb_ok+mb_iconinformation);
key:=#0;
edit1.Clear;
exit;
end;
////////////////////////////////////////////////////////////
//////////////////////////是滞能进行-的插入////////////////////////////
if (length(edit1.Text)=4)and (key<>'-')and(key<>#8) then
begin
edit1.SelLength:=0;
edit1.SelStart:=4;
edit1.Text :=edit1.Text +'-';
edit1.SelStart:=5;
end;
if (length(edit1.Text)=7) and (key<>'-')and(key<>#8) then
begin
edit1.SelStart:=7;
edit1.Text :=edit1.Text+'-';
edit1.SelStart:=8;
end;////////////////////////////////////////////////////////////////////
if (length(edit1.Text)>4) and(length(edit1.Text)<6)then
begin
if key in ['2'..'9'] then
begin
edit1.SelStart:=7;
edit1.Text:=edit1.Text+'0';
edit1.SelStart:=8;
end;
end; //月
//////////////////////////////////////////
if length(edit1.Text)=6 then
begin
if copy(edit1.Text,6,1)='1' then
if not(key in ['0'..'2',#8]) then
begin
key:=#0;
exit;
end;
if copy(edit1.text,6,1)='0' then
begin
if not (key in['1'..'9',#8]) then
begin
key:=#0;
exit;
end;
end;
end; //以1打头的月
/////////////////////////////////////////////////////////
if length(edit1.Text)=8 then
if strtoint(copy(edit1.Text,6,2))=2 then
begin
if not (key in['0'..'2',#8])then
begin
key:=#0;
exit;
end;
end else
begin
if not (key in['0'..'3',#8]) then
begin
key:=#13;
exit;
end;
end;
////////////////////////////////////////////////////
if length(edit1.Text)>8 then
begin
i:=strtoint(copy(edit1.Text,6,2));
////////////////////////////////////////////////
if length(edit1.text)=9 then
if i=2 then
begin
if (copy(edit1.text,9,1))='2' then
begin
//if not sfrn(copy(edit1.text,1,4)) then
if Not IsLeapYear(StrToInt(Copy(Edit1.Text,1,4))) then
if not (key in ['0'..'8',#8]) then
begin
key:=#0;
exit;
end;
end;
end; { }
///////////////////////////////////////////////// 闰年
if i=0 then
begin
key:=#0;
exit;
end;
if (i=1) or (i=3) or (i=5) or (i=7) or (i=8) or(i=10) or(i=12) then
begin
if not (key in['0'..'3',#8])then
begin
key:=#0;
exit;
end;
if length(edit1.Text)=9 then
if strtoint(copy(edit1.Text,9,1))=3 then
if not(key in['0','1',#8]) then
begin
key:=#0;
exit;
end; // if not(key in['0','1',#8]) then
end else
begin
if (not (key in ['0',#8])) and (copy(edit1.Text,9,1)='3')then
begin
key:= #0;
exit;
end;
end;
end;
end;function TForm1.sfrn(str: string): boolean;
var
i,j,h:integer;
begin
if length(str)>4 then
begin
i:=length(str);
application.MessageBox('不是有效的年','提示',mb_ok+mb_iconinformation);
result:=false;
exit;
end else//i:=length]
begin
if (strtoint(str)<1000) or (strtoint(str)>2050) then
begin
//application.MessageBox('不是有效的年,您的输入范围只能在1000-2050之间','提示',mb_ok+mb_iconinformation);
result:=false;
exit;
end;//if strtoint(str)<1000
end;
i:=strtoint(str);
if (i mod 400=0 )or ((i mod 4=0) and(i mod 100<>0)) then
begin
result:=true;
end
else
begin
result:=false;
end;
end;
将其写成'年'、‘月’‘日’就可以了;
也可以写成一个公用函数
tMaskEdit
最好用datetiempicker
TMaskEdit也可以
自己定义过滤属性就可以