procedure TBillForm.edCashDateKeyPress(Sender: TObject; var Key: Char);
begin
case key of
#48..#57:
try
if length(edCashDate.text) = 3 then
begin
if (StrToInt(edCashDate.Text + key) < 1995) or (StrToInt(edCashDate.Text + key) > 2050) then
begin
Abort;
end
else
PostMessage((sender as Tedit).handle, wm_char, ord('-'), 0);
end
else if length(edCashDate.text) = 5 then
begin
if key >= '2' then
begin
edCashDate.Text := edCashDate.Text + '0';
edCashDate.selstart := length(edCashDate.Text);
PostMessage((sender as Tedit).handle, wm_char, ord('-'), 0);
end;
end
else if length(edCashDate.text) = 6 then
begin
if copy((edCashDate.Text + key), 6, 2) > '12' then
begin
Abort;
end
else
PostMessage((sender as Tedit).handle, wm_char, ord('-'), 0);
end
else if length(edCashDate.text) = 8 then
begin
if key > '3' then
begin
edCashDate.Text := edCashDate.Text + '0';
edCashDate.selstart := length(edCashDate.Text);
end
end
else if length(edCashDate.text) = 9 then
begin
if copy((edCashDate.Text + key), 9, 2) > '31' then
begin
Abort;
end
end
except
ErrorShow('请输入正确的日期');
end;
#13:
begin
try
if (strtoDate(Trim(edCashDate.Text))>strtoDate('2000-01-01')) then
begin
CashNo := Trim(edCashNo.Text);
BuyDate := strtoDate(Trim(edCashDate.Text));
ModalResult := mrOK;
if POSClass.WinType then
close;
end
else
ErrorShow('请输入正确日期.');
except
ErrorShow('请输入正确日期.');
end;
end;
#27:
begin
modalResult := mrCancel;
close;
end;
end;
end;