在退出我的Delphi表单时,如果用户键入Datetimepicker数字,则在以下情况下日期(DateTimePicker1.Date)的值不会更改:1.)Windows日期格式为MM / dd / yy, 2.)DateTimePicker中的默认日期值在5月11日有2位数字的天作为“ 11”(例如“ 05/11/19”),3)表单上有一个“ OK” BitBtn,它是默认值按钮4)。用户在当天的区域中键入2,然后按“ Enter”键。
“确定”按钮的代码:
procedure TMyForm.BitBtn1Click(Sender: TObject);
var
testDate: TDateTime;
begin
MessageDlg('My date is '+DateToStr(DateTimePicker1.Date),mtInformation,[mbOK],0);
end;
不幸的是,对于我的许多用户来说,上述所有条件都是很常见的,才能使此操作失败。例如,如果用户在5月2日键入“ 02”,则很好,或者用户点击在“确定”按钮上,或者用户箭头离开日期条目或跳出日期条目之外字段,然后他们可以按“ Enter”(输入),默认设置可以很好地运行按钮。
我尝试了表单和按钮上的许多属性,但均无济于事。到目前为止,我认为可以解决的问题是使“确定”按钮不是默认按钮,但我应该能够保持此用户友好状态?
答案 0 :(得分:1)
DateTimePicker中的一位数字不足以将所需的2位数字设置为具有许多Windows日期格式的date变量。此信用应该归因于@SertekAkyuz,说在访问更改的日期之前只需添加一个“ SetFocus”即可。在BitBtn.Click的开头,它不仅是“ SetFocus”,还包括BitBtn1.SetFocus或其他组件。