在EDIT的KEYPRESS事件中写
if not (key in ['0'..'9',#8]) then
begin
if (key='.') and (pos('.',Tedit(sender).Text)=0) then exit;
key:=#0;
Messagebeep(0);
end;
这是输入格式的控制吧,不能输入其它字符,999,999.99如何做呢?
这是加数字且代可有一个小数点掩码的代码,
在EDIT的KEYPRESS事件中写
if not (key in ['0'..'9',#8]) then
begin
if (key='.') and (pos('.',Tedit(sender).Text)=0) then exit;
key:=#0;
Messagebeep(0);
end;
procedure TFormTime.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in ['0'..'9','-',#8]) then
begin
Key:=#0;
exit ;
end ;
if ((Tedit(Sender).SelStart in [4,7]) or (Tedit(Sender).SelStart >9))
and (Key in ['0'..'9']) then
begin
key := #0;
exit ;
end ;
if (not ( Tedit(Sender).SelStart in [4,7])) and (key ='-') then
begin
Key :=#0 ;
exit ;
end ;
if (Tedit(Sender).SelStart in [4,7]) and (key='-') and
(Copy(Tedit(Sender).Text,Tedit(Sender).SelStart,1) ='-') then
begin
Key :=#0 ;
exit ;
end ;
if (Key =#8) and
(Copy(Tedit(Sender).Text,Tedit(Sender).SelStart,1) ='-') and
(Copy(Tedit(Sender).Text,Tedit(Sender).SelStart+1,1) <>'')
then
Key :=#0 ;
end;
procedure TFormTime.Edit1Exit(Sender: TObject);
var ds :TDateTime ;
begin
try
ds:=StrToDate(TEdit(Sender).Text);
TEdit(Sender).Text :=FormatDateTime('yyyy-mm-dd',ds);
if TEdit(Sender).Name = 'Edit1' then
IsTime1:='Edit1'
else
IsTime1:='Edit2';
except
TEdit(Sender).Text :=FormatDateTime('yyyy-mm-dd',date);
if TEdit(Sender).Name = 'Edit1' then
IsTime1:=''
else
IsTime1:='';
Application.MessageBox('日期格式输入不正确,正确日期格式为2004-01-01','提示',0) ;
TEdit(Sender).SetFocus ;
end ;
end;
procedure TFormTime.FormShow(Sender: TObject);
begin
IsTime1:='';
IsTime2:='' ;
end;
procedure TFormTime.Button1Click(Sender: TObject);
begin
if (Trim(Edit1.Text)<>'') and (Trim(Edit2.Text)<>'') then
begin
Edit1Exit(Edit1);
Edit1Exit(Edit2);
if (Trim(IsTime1)<>'') and (Trim(IsTime1)<>'') then
begin
StaDate := Edit1.Text ;
EndDate := Edit2.Text ;
Close ;
end ;
end
else
begin
Application.MessageBox('请输入开始时间及结束时间','提示',0);
end ;
end;
procedure TFormTime.Button2Click(Sender: TObject);
begin
Close ;
end;